Skip to content

feat(cloud-storage): add Cloudflare Worker-based cloud storage app#8

Merged
Arylo merged 26 commits intomasterfrom
feat/cloud-storage
Apr 15, 2026
Merged

feat(cloud-storage): add Cloudflare Worker-based cloud storage app#8
Arylo merged 26 commits intomasterfrom
feat/cloud-storage

Conversation

@Arylo
Copy link
Copy Markdown
Owner

@Arylo Arylo commented Apr 14, 2026

Summary

Introduces a new Cloudflare Worker application (apps/cf-worker/cloud-storage) — a self-hosted cloud storage service built with Hono (backend) and React + Vite (frontend), deployed on Cloudflare Workers + D1.

Features

  • Auth & Access Control: Login, logout, session expiry handling; guest permission system with per-pan configurable access levels
  • Pan (Drive) Management: Admin CRUD for pans; per-pan permission control for guests
  • File Management: File list with cursor pagination, multi-file upload, deduplication, deletion (admin & guest), and background image proxy
  • Access Codes: Code-based guest access with unique constraint enforcement and cascade deletion
  • UI: Toast notifications (sonner), confirmation dialogs, video player (hls.js), responsive layout

Infrastructure

  • Added GitHub Actions CI workflow (lint / test / build) triggered on changes to apps/cf-worker/cloud-storage/**
  • Renamed Components/components/ and Pages/pages/ for Linux case-sensitivity compatibility
  • Fixed case-sensitive import paths that caused build failures on Linux CI

Other Changes

  • Upgraded dependencies and synced Linux native bindings into package-lock.json
  • Refactored .claude/skills: replaced linux-native-binding-repair with install-native-binding
  • Updated VS Code MCP config, added chrome-devtools and shadcn MCP servers

Arylo added 21 commits April 3, 2026 01:21
… code cascade deletion

- Add RemovePanButton and RemoveCodeButton with AlertDialog confirmation UI
- Add Logout page and SessionExpired page
- Restructure root pages into RootPage/ (AdminPage, GuestPage, AdminManagementPage)
- Fix: codes under a pan were not deleted when the pan was removed due to PanCode subquery being evaluated after PanCode rows were deleted; move Code deletion before PanCode deletion
- Add secure flag to all Set-Cookie calls in adminAuth and panAuth middlewares
- Add KV cacheTtl option to AUTH_KV.get calls to reduce latency
- Use c.event.waitUntil for non-blocking KV.put on session write
- Add favicon assets for both root and /admin paths
- Add axios, react-helmet, react-use dependencies
- Add sonner library for toast notifications with theme support (next-themes integration)
- Add lucide-react icon library for UI components
- Implement CodeAddressButton component for sharing extraction codes
- Implement EditCodeButton component for edit actions
- Implement input-group, popover and textarea UI components for improved UX
- Integrate toast notifications across AdminCodes, AdminCodeDetail, AdminPanDetail and AdminPans pages
- Support automatic dark/light theme switching for notifications
### Changes:
- **Components**: Refactored button components with new BackButton, DeleteButton, DeleteCodeButton, DeleteFileButton, and DeletePanButton components
- **Component Rename**: Renamed EditCodeButton to EditButton for consistency
- **UI Enhancements**: Added Empty component for empty states and DateHover component for date display
- **File Management**: Introduced AdminFileManagement component for file operations in storage panels
- **Page Updates**: Updated AdminPanDetail, AdminPans, AdminCodes, and other pages to use new components
- **Request Methods**: Enhanced fetchAdminCodes and fetchAdminPanDetail with new functionality

### Motivation:
This refactoring improves component modularity and separation of concerns by breaking down complex button logic into focused, reusable components. The new AdminFileManagement component provides better organization for file operations and enhanced user interface for managing storage contents.
- Refactor permission constants structure:
  + Split constant.ts into constant/perm.ts for permission definitions
  + Add new constant/guest.ts for guest-specific constants

- Implement guest file upload functionality:
  + Add uploadFileGuest.ts for guest file upload requests
  + Add guestFetch.ts utility for guest authentication requests
  + Implement guestAxios instance for guest API calls

- Update authorization middleware and APIs:
  + Enhance adminAuth.ts and panAuth.ts for guest access handling
  + Update permission models to support guest permissions
  + Implement getPerms utility to handle both admin and guest permissions
  + Update admin and guest API endpoints (codePerm, panPerm, filelist)

- Update React components for multi-user support:
  + Modify login, detail pages, and permission components
  + Refactor usePanPermsByPanId hook for guest/admin dual modes
  + Update UI components to support guest access flows
- Split 6 merged e2e md files into 79 individual scenario files under test/e2e/docs/
- Organized into 6 subdirectories: admin-auth(5), admin-pan(12), admin-code(13), admin-perm(13), admin-file(15), guest-file(21)
- Added [管理端] / [访客端] role labels to mixed-role scenario steps for clarity
- Removed original merged md files from test/e2e/
Copilot AI review requested due to automatic review settings April 14, 2026 02:31
@Arylo Arylo assigned Copilot and Arylo and unassigned Copilot Apr 14, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new Cloudflare Workers “cloud-storage” app (Hono + D1/KV/R2 backend + React SPA frontend), alongside repo-wide tooling bumps and CI wiring to lint/test/build the new app.

Changes:

  • Disable Turbo caching for the formatter fix task and bump oxlint/rimraf versions across multiple workspaces.
  • Add the new apps/cf-worker/cloud-storage Worker + React SPA implementation, configs (Wrangler/Vite/Vitest/TS), and extensive docs/E2E scenario specs.
  • Add a dedicated GitHub Actions workflow for cloud-storage and update repo/editor automation configs (Claude skills, MCP, VS Code settings).

Reviewed changes

Copilot reviewed 258 out of 274 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
turbo.json Disables caching for fix:formatter.
packages/node/logger/package.json Bumps oxlint and rimraf.
packages/node/buildFS/package.json Bumps oxlint and rimraf.
packages/monkey/gm-vue/package.json Bumps oxlint and rimraf.
packages/monkey/gm-polyfill/package.json Bumps oxlint and rimraf.
packages/general/throttle/package.json Bumps oxlint and rimraf.
packages/general/genStorage/package.json Bumps oxlint and rimraf.
packages/general/functionControl/package.json Bumps oxlint and rimraf.
packages/general/flow/package.json Bumps oxlint and rimraf.
packages/general/MdGenerator/package.json Bumps oxlint and rimraf.
packages/esbuild-plugin/html-minify-text/package.json Bumps oxlint and rimraf.
packages/esbuild-plugin/css-minify-text/package.json Bumps oxlint and rimraf.
packages/build-scripts/qinglong-build/package.json Bumps oxlint and rimraf.
packages/build-scripts/monkey-build/package.json Bumps oxlint and rimraf.
packages/build-scripts/build-utils/package.json Bumps oxlint and rimraf.
packages/browser/genScrollTo/package.json Bumps oxlint and rimraf.
apps/qinglong/package.json Bumps oxlint and rimraf.
apps/monkey/set-fira-code-development-websites/package.json Bumps rimraf.
apps/monkey/nyaa-si-show-image/package.json Bumps rimraf.
apps/monkey/gitlab-settings-max-size/package.json Bumps rimraf.
apps/monkey/gitlab-font-family/package.json Bumps rimraf.
apps/monkey/gitlab-enhance/package.json Bumps rimraf.
apps/monkey/copymanga-enhance/package.json Bumps oxlint and rimraf.
apps/cf-worker/cloud-storage/wrangler.jsonc Adds Wrangler config + bindings for the new Worker.
apps/cf-worker/cloud-storage/vitest.config.ts Adds Vitest config + aliasing.
apps/cf-worker/cloud-storage/vite.config.ts Adds Vite config + Cloudflare plugin wiring.
apps/cf-worker/cloud-storage/tsconfig.worker.json Adds worker TS config.
apps/cf-worker/cloud-storage/tsconfig.node.json Adds node TS config for tooling.
apps/cf-worker/cloud-storage/tsconfig.json Adds project references + path aliases.
apps/cf-worker/cloud-storage/tsconfig.app.json Adds app TS config for React.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/23-preview-video-file.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/22-preview-image-file.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/21-upload-different-hash.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/20-upload-same-hash.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/19-empty-list-after-delete.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/18-special-chars-download.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/17-no-auth-access.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/16-cookie-persistence.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/15-highlight-file-first.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/14-upload-file-no-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/13-associate-file-hash-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/12-associate-file-by-hash.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/11-upload-file-multipart.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/10-delete-file-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/09-delete-file-no-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/08-delete-file-with-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/07-download-file-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/06-download-file-no-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/05-download-file-with-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/04-list-files-by-cookie.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/03-disabled-pan.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/02-invalid-code.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/01-list-files-by-code.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/13-cascade-delete-with-code.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/12-code-perm-false-behavior.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/11-cascade-delete-with-pan.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/10-perm-ownership-validation.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/09-delete-code-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/08-update-code-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/07-code-perm-overrides-pan-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/06-add-code-delete-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/05-delete-pan-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/04-update-pan-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/03-invalid-perm-type.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/02-duplicate-perm-type.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/01-add-pan-upload-perm.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/12-pan-list-count-decrement.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/11-pan-list-count-increment.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/10-empty-pan-structure.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/09-disabled-pan-blocks-guest.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/08-new-pan-default-state.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/07-delete-pan-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/06-delete-pan-cascade.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/05-update-pan-status.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/04-pan-detail-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/03-pan-detail.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/02-create-pan.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/01-list-pans.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/15-delete-file-not-in-pan.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/14-delete-file-multi-pan.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/13-delete-file-single-pan.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/12-update-file-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/11-update-filename-and-highlight.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/10-update-highlight.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/09-update-filename.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/08-download-r2-missing.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/07-download-file-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/06-download-file.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/05-associate-file-hash-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/04-associate-file-by-hash.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/03-upload-missing-field.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/02-upload-duplicate-file.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/01-upload-new-file.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/13-cascade-delete-with-pan.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/12-disabled-code-blocks-guest.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/11-cross-pan-code-ownership.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/10-multiple-codes-same-pan.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/09-code-value-format.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/08-delete-code-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/07-delete-code.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/06-update-code-status.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/05-code-detail-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/04-code-detail.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/03-create-code-pan-not-found.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/02-create-code.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/01-list-codes.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-auth/05-token-expired.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-auth/04-logout-success.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-auth/03-unauth-access.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-auth/02-login-fail.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/docs/admin-auth/01-login-success.md Adds E2E scenario doc.
apps/cf-worker/cloud-storage/test/e2e/CLAUDE.md Documents E2E scenario doc conventions.
apps/cf-worker/cloud-storage/src/worker/utils/publishJson.ts Adds custom-code-to-HTTP response wrapper.
apps/cf-worker/cloud-storage/src/worker/utils/getDb.ts Adds Drizzle D1 instance helper + query logging.
apps/cf-worker/cloud-storage/src/worker/utils/genLogger.ts Adds request/session-prefixed logger.
apps/cf-worker/cloud-storage/src/worker/types/hono.ts Adds shared Hono env/context typings.
apps/cf-worker/cloud-storage/src/worker/schema.sql Adds initial SQL schema definition.
apps/cf-worker/cloud-storage/src/worker/models/base.ts Adds default ID/timestamp columns for Drizzle models.
apps/cf-worker/cloud-storage/src/worker/models/Perm.ts Adds perm table model.
apps/cf-worker/cloud-storage/src/worker/models/PanPerm.ts Adds pan_perm join table model.
apps/cf-worker/cloud-storage/src/worker/models/PanDoc.ts Adds pan_doc join table model.
apps/cf-worker/cloud-storage/src/worker/models/PanCode.ts Adds pan_code join table model.
apps/cf-worker/cloud-storage/src/worker/models/Pan.ts Adds pan table model.
apps/cf-worker/cloud-storage/src/worker/models/Doc.ts Adds doc table model.
apps/cf-worker/cloud-storage/src/worker/models/CodePerm.ts Adds code_perm join table model.
apps/cf-worker/cloud-storage/src/worker/models/Code.ts Adds code table model.
apps/cf-worker/cloud-storage/src/worker/middlewares/startTime.ts Adds request start time tracking.
apps/cf-worker/cloud-storage/src/worker/middlewares/session.ts Adds request/session IDs in headers + context.
apps/cf-worker/cloud-storage/src/worker/middlewares/less.ts Adds conditional middleware skipping by route.
apps/cf-worker/cloud-storage/src/worker/middlewares/access.ts Adds access logging middleware.
apps/cf-worker/cloud-storage/src/worker/index.ts Wires Worker middlewares and routes.
apps/cf-worker/cloud-storage/src/worker/apis/utils/getPerms.ts Implements pan/code permission resolution.
apps/cf-worker/cloud-storage/src/worker/apis/utils/checkPermType.ts Adds perm type validation helper.
apps/cf-worker/cloud-storage/src/worker/apis/utils/checkPermExistsFromPan.ts Adds “perm belongs to pan” validation helper.
apps/cf-worker/cloud-storage/src/worker/apis/utils/checkPermExistsFromCode.ts Adds “perm belongs to code” validation helper.
apps/cf-worker/cloud-storage/src/worker/apis/utils/checkPanExists.ts Adds pan existence helper.
apps/cf-worker/cloud-storage/src/worker/apis/utils/checkPanDocExists.ts Adds pan/doc association lookup helper.
apps/cf-worker/cloud-storage/src/worker/apis/utils/checkCodeExists.ts Adds code existence helper.
apps/cf-worker/cloud-storage/src/worker/apis/guest/index.ts Adds guest API router wiring.
apps/cf-worker/cloud-storage/src/worker/apis/guest/filepost.ts Adds guest upload endpoints.
apps/cf-worker/cloud-storage/src/worker/apis/guest/filelist.ts Adds guest file listing endpoint.
apps/cf-worker/cloud-storage/src/worker/apis/bg/index.ts Adds KV-cached Bing background proxy endpoint.
apps/cf-worker/cloud-storage/src/worker/apis/admin/panPerm.ts Adds admin CRUD for pan-level perms.
apps/cf-worker/cloud-storage/src/worker/apis/admin/index.ts Adds admin API router wiring.
apps/cf-worker/cloud-storage/src/worker/apis/admin/codePerm.ts Adds admin CRUD for code-level perms.
apps/cf-worker/cloud-storage/src/worker/apis/admin/auth.ts Adds admin login/logout wiring.
apps/cf-worker/cloud-storage/src/worker/CLAUDE.md Documents Worker architecture.
apps/cf-worker/cloud-storage/src/shared/types/types.d.ts Adds shared API/file types.
apps/cf-worker/cloud-storage/src/shared/constant/status-code.test.ts Adds tests for custom status code invariants.
apps/cf-worker/cloud-storage/src/shared/constant/perm.ts Adds perm type constants/defaults.
apps/cf-worker/cloud-storage/src/shared/constant/guest.ts Adds guest status codes and messages.
apps/cf-worker/cloud-storage/src/shared/constant/general.ts Adds general status codes and messages.
apps/cf-worker/cloud-storage/src/shared/constant/admin.ts Adds admin status codes and messages.
apps/cf-worker/cloud-storage/src/react-app/vite-env.d.ts Adds Vite client typing ref.
apps/cf-worker/cloud-storage/src/react-app/utils/guestFetch.ts Adds guest axios wrapper + redirect/toast behavior.
apps/cf-worker/cloud-storage/src/react-app/utils/formatFileSize.ts Adds file size formatter helper.
apps/cf-worker/cloud-storage/src/react-app/utils/formatFileSize.test.ts Adds tests for file size formatter.
apps/cf-worker/cloud-storage/src/react-app/utils/diffDate.ts Adds “time ago” helper.
apps/cf-worker/cloud-storage/src/react-app/utils/diffDate.test.ts Adds tests for “time ago” helper.
apps/cf-worker/cloud-storage/src/react-app/utils/adminFetch.ts Adds admin axios wrapper + session-expired event.
apps/cf-worker/cloud-storage/src/react-app/routes.ts Adds SPA routing (guest + admin).
apps/cf-worker/cloud-storage/src/react-app/requests/uploadFileGuest.ts Adds guest upload request wrapper.
apps/cf-worker/cloud-storage/src/react-app/requests/uploadFile.ts Adds admin upload request wrapper.
apps/cf-worker/cloud-storage/src/react-app/requests/logout.ts Adds admin logout request wrapper.
apps/cf-worker/cloud-storage/src/react-app/requests/login.ts Adds admin login request wrapper.
apps/cf-worker/cloud-storage/src/react-app/requests/fetchPanInfoData.ts Adds guest file list fetch wrapper.
apps/cf-worker/cloud-storage/src/react-app/requests/fetchAdminPans.ts Adds admin pan CRUD request wrappers.
apps/cf-worker/cloud-storage/src/react-app/requests/fetchAdminPanDetail.ts Adds admin pan detail + delete-file request wrappers.
apps/cf-worker/cloud-storage/src/react-app/requests/fetchAdminCodes.ts Adds admin code list/delete request wrappers.
apps/cf-worker/cloud-storage/src/react-app/requests/fetchAdminCodeDetail.ts Adds admin code detail request wrapper.
apps/cf-worker/cloud-storage/src/react-app/requests/deleteFileGuest.ts Adds guest delete-file request wrapper.
apps/cf-worker/cloud-storage/src/react-app/main.tsx Adds SPA entry point.
apps/cf-worker/cloud-storage/src/react-app/lib/utils.ts Adds cn() helper.
apps/cf-worker/cloud-storage/src/react-app/hooks/usePanPermsByPanId.ts Adds admin pan perm resolution hook.
apps/cf-worker/cloud-storage/src/react-app/hooks/usePanPerms.ts Adds guest perms hook.
apps/cf-worker/cloud-storage/src/react-app/hooks/usePanInfo.ts Adds guest pan-info hook.
apps/cf-worker/cloud-storage/src/react-app/hooks/useFileList.ts Adds guest file-list hook.
apps/cf-worker/cloud-storage/src/react-app/Pages/SessionExpired/SessionExpired.tsx Adds admin session-expired page.
apps/cf-worker/cloud-storage/src/react-app/Pages/RootPage/GuestPage.tsx Adds guest root page + redirect handling.
apps/cf-worker/cloud-storage/src/react-app/Pages/RootPage/App.tsx Adds top-level app shell + toaster.
apps/cf-worker/cloud-storage/src/react-app/Pages/RootPage/App.module.css Adds responsive background CSS.
apps/cf-worker/cloud-storage/src/react-app/Pages/RootPage/AdminPage.tsx Adds admin root page.
apps/cf-worker/cloud-storage/src/react-app/Pages/RootPage/AdminManagementPage.tsx Adds admin layout + menu + session-expired handling.
apps/cf-worker/cloud-storage/src/react-app/Pages/Logout/Logout.tsx Adds logout page.
apps/cf-worker/cloud-storage/src/react-app/Pages/Login/Login.tsx Adds login page.
apps/cf-worker/cloud-storage/src/react-app/Pages/Home/Home.tsx Adds guest home page (enter code).
apps/cf-worker/cloud-storage/src/react-app/Pages/Detail/constant.ts Adds detail page mode constants.
apps/cf-worker/cloud-storage/src/react-app/Pages/Detail/Components/VideoContent.tsx Adds video preview renderer.
apps/cf-worker/cloud-storage/src/react-app/Pages/Detail/Components/NotSupportContent.tsx Adds fallback renderer.
apps/cf-worker/cloud-storage/src/react-app/Pages/Detail/Components/ImageContent.tsx Adds image preview renderer.
apps/cf-worker/cloud-storage/src/react-app/Pages/Detail/Components/Content.tsx Adds preview router by mimetype.
apps/cf-worker/cloud-storage/src/react-app/Pages/AdminPans/AdminPans.tsx Adds admin pans list page.
apps/cf-worker/cloud-storage/src/react-app/Pages/AdminCodes/DateHover.tsx Adds hover date component.
apps/cf-worker/cloud-storage/src/react-app/Pages/AdminCodes/AdminCodes.tsx Adds admin codes list page.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/textarea.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/table.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/spinner.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/sonner.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/skeleton.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/separator.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/radio-group.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/popover.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/label.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/input.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/hover-card.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/empty.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/checkbox.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/card.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/ui/button.tsx Adds UI component.
apps/cf-worker/cloud-storage/src/react-app/Components/Card/Card.tsx Adds custom Card wrapper component.
apps/cf-worker/cloud-storage/src/react-app/Components/Button/EditButton.tsx Adds admin edit button component.
apps/cf-worker/cloud-storage/src/react-app/Components/Button/DeletePanButton.tsx Adds admin delete pan button wrapper.
apps/cf-worker/cloud-storage/src/react-app/Components/Button/DeleteFileButton.tsx Adds admin delete file button wrapper.
apps/cf-worker/cloud-storage/src/react-app/Components/Button/DeleteCodeButton.tsx Adds admin delete code button wrapper.
apps/cf-worker/cloud-storage/src/react-app/Components/Button/DeleteButton.tsx Adds generic delete-confirmation dialog button.
apps/cf-worker/cloud-storage/src/react-app/Components/Button/CodeAddressButton.tsx Adds “copy/open code URL” button.
apps/cf-worker/cloud-storage/src/react-app/Components/Button/BackButton.tsx Adds back button component.
apps/cf-worker/cloud-storage/src/react-app/CLAUDE.md Documents React app architecture.
apps/cf-worker/cloud-storage/public/site.webmanifest Adds guest PWA manifest.
apps/cf-worker/cloud-storage/public/admin/site.webmanifest Adds admin PWA manifest.
apps/cf-worker/cloud-storage/package.json Adds new app package definition + deps/scripts.
apps/cf-worker/cloud-storage/index.html Adds app HTML entry.
apps/cf-worker/cloud-storage/docs/project_structure.md Adds documentation.
apps/cf-worker/cloud-storage/docs/project_logic.md Adds documentation.
apps/cf-worker/cloud-storage/docs/pickup_guide.md Adds documentation.
apps/cf-worker/cloud-storage/docs/libraries.md Adds documentation.
apps/cf-worker/cloud-storage/docs/glossary.md Adds documentation.
apps/cf-worker/cloud-storage/docs/admin_guide.md Adds documentation.
apps/cf-worker/cloud-storage/components.json Adds shadcn config.
apps/cf-worker/cloud-storage/Roadmap.md Adds roadmap.
apps/cf-worker/cloud-storage/CLAUDE.md Adds top-level docs index.
apps/cf-worker/cloud-storage/AGENTS.md Adds CF Worker agent guidance.
apps/cf-worker/cloud-storage/.vscode/settings.json Adds local editor config for JSONC associations.
apps/cf-worker/cloud-storage/.oxlintrc.json Adds oxlint config for the app.
apps/cf-worker/cloud-storage/.oxfmtrc.json Adds oxfmt config for the app.
apps/caddyfile-sdk/package.json Bumps oxlint and rimraf.
CLAUDE.md Renames referenced native-binding repair skill.
.vscode/settings.json Adds chat terminal auto-approve config.
.vscode/mcp.json Updates MCP server definitions.
.github/workflows/cloud_storage.yml Adds CI workflow for the cloud-storage app.
.claude/skills/install-native-binding/SKILL.md Adds install-native-binding skill doc.
.claude/skills/commit/SKILL.md Updates commit skill to use install-native-binding + body rule.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread apps/cf-worker/cloud-storage/src/worker/apis/guest/filepost.ts Outdated
Comment thread apps/cf-worker/cloud-storage/src/react-app/hooks/usePanPerms.ts
Comment thread apps/cf-worker/cloud-storage/src/react-app/Components/Button/DeleteButton.tsx Outdated
Comment thread apps/cf-worker/cloud-storage/wrangler.jsonc
Comment thread apps/cf-worker/cloud-storage/src/worker/apis/utils/getPerms.ts
Comment on lines +13 to +16
const { data } = await guestAxios.post<
ApiResponse<{ key: string; originalName: string; contentType: string; size: number }>
>('/api/files/file', formData)

Comment thread apps/cf-worker/cloud-storage/src/react-app/hooks/useFileList.ts
Comment thread apps/cf-worker/cloud-storage/src/react-app/utils/formatFileSize.ts
Arylo added 3 commits April 14, 2026 11:11
- Update @vitest/coverage-v8 from v1.6.0 to v4.1.4
- Upgrade vite from v6.0.0 to v8.0.8 and @vitejs/plugin-react to v6.0.1
- Update @cloudflare/vite-plugin from v1.15.3 to v1.32.2
- Replace ts-node with tsx v4.21.0
- Update vitest to v4.1.4 and syncpack to v14.3.0
- Sync package-lock.json with Linux x64 native bindings and cross-platform support
@Arylo Arylo force-pushed the feat/cloud-storage branch 2 times, most recently from bb95fe9 to 63a47de Compare April 15, 2026 02:51
…owercase

- Rename src/react-app/Components/ -> src/react-app/components/ via git mv
- Rename src/react-app/Pages/ -> src/react-app/pages/ via git mv
- Update all import paths from @/Components/ and @/Pages/ to lowercase equivalents
- Reformat affected files via oxfmt
@Arylo Arylo force-pushed the feat/cloud-storage branch from 63a47de to e0b9b7d Compare April 15, 2026 02:56
@Arylo Arylo changed the title Feat/cloud storage feat(cloud-storage): add Cloudflare Worker-based cloud storage app Apr 15, 2026
@Arylo Arylo merged commit 69960f0 into master Apr 15, 2026
14 checks passed
@Arylo Arylo deleted the feat/cloud-storage branch April 15, 2026 02:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants