ld a18f96912d feat(repository): refactor query/mutation ports with capability-safe
interfaces

- refactor: split UserRepository into AuthUserRepository and
  AdminUserRepository capabilities
- refactor: split SessionRepository into AuthSessionRepository and
  repository-owned CLI/admin methods
- refactor: replace generic Repository Update/Delete with
  operation-specific params and ownership predicates
- refactor: replace CredentialRepository generic CRUD with
  passkey-specific methods
- refactor: replace FileRepository generic Create/Update/Delete with
  UploadedFileParams, DirectoryParams, and owned soft-delete
- refactor: remove repository fields from WebApp struct; repositories
  are now composition-time wiring only
- feat: add domain error kinds ErrParentNotFound, ErrParentNotDir,
  ErrDirectoryNotEmpty, ErrInvalidMove
- feat: add CredentialTypeAppPasskey constant
- feat: add testutil.SetUserAdmin for test fixture setup that bypasses
  production service ports
- test: add architecture test banning GORM Save in repository package
- test: add capability interface contract tests ensuring each service
  receives the minimal interface
- test: add blockingStorage helper for concurrent promotion tests
- test: add preserved DSN parameter test for sqliteImmediateDSN
- docs: update architecture decisions with repository write rules and
  capability separation
- docs: update roadmap to clarify atomic single-use refresh sessions
- docs: add -race test target to development docs
2026-07-16 12:24:36 +08:00
2026-04-29 11:51:20 +08:00

MyGO

MyGO is a WebDisk (cloud drive) server, written in Go.

Current status: pre-alpha — basic JWT authentication and file transfer flows are available while their APIs and large-file behavior continue to evolve.


Roadmap

v0

  • CLI configuration management (mygo config)
  • User authentication (JWT)
  • Basic file upload / download / management (HTTP API)
  • Admin endpoints
  • WebDAV support

Future

  • Image server
  • Pastebin & code snippet editing in sharing
  • S3 storage backend
  • Nextcloud-compatible API

CLI

mygo is the backend entrypoint with these subcommands:

Command Description
mygo serve Start the backend server
mygo config Manage instance configuration
mygo status Show server status

Frontend

The frontend uses React + TypeScript and communicates with the backend via HTTP API. Its first milestone supports login, a root file list, single-file upload, and authenticated download. Frontend source is maintained in web/; see web/README.md for development, testing, and browser-debugging instructions.


Development

See docs/README.md for the server and Web documentation index. See AGENTS.md for behavioral conventions.

S
Description
MyGO: a webdisk written in Go. This is the server (backend) application.
Readme 691 KiB
Languages
Go 98.9%
TypeScript 0.9%
HTML 0.1%