a18f96912df8f809efa8dbc877272284d3912115
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
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.
Description
Languages
Go
98.9%
TypeScript
0.9%
HTML
0.1%