finalize M06-M12 with Go/SQLite/Synology NAS implementation decisions
This commit is contained in:
@@ -1,8 +1,43 @@
|
||||
# Milestone 10: Device-Side App Management
|
||||
|
||||
**Status**: Planning
|
||||
**Status**: Decided
|
||||
**Goal**: Install, update, and manage apps on Mosis devices.
|
||||
|
||||
## Decision
|
||||
|
||||
**C++ AppManager + Lua bindings** running on MosisService:
|
||||
|
||||
```
|
||||
AppManager: C++ class managing installation/updates
|
||||
Storage: Local device storage (/data/mosis/apps/)
|
||||
Updates: Background service checking Portal API
|
||||
UI: App Store system app (RML/Lua)
|
||||
API: Connects to Portal at portal.mosis.dev (or self-hosted)
|
||||
```
|
||||
|
||||
### Rationale
|
||||
|
||||
1. **Native C++** - AppManager runs in MosisService process for performance
|
||||
2. **Background updates** - UpdateService thread checks Portal API periodically
|
||||
3. **System app** - App Store is a privileged RML/Lua app with special permissions
|
||||
4. **Ed25519 verification** - All packages verified before installation
|
||||
|
||||
### API Integration
|
||||
|
||||
```
|
||||
Device Portal (Synology NAS)
|
||||
┌──────────────┐ ┌──────────────────────┐
|
||||
│ MosisService │ │ mosis-portal │
|
||||
│ │ │ │
|
||||
│ UpdateService├──────GET /store/apps────►│ Chi API Router │
|
||||
│ │ /updates?pkgs=... │ │
|
||||
│ │◄─────{updates: [...]}───┤ SQLite portal.db │
|
||||
│ │ │ │
|
||||
│ AppManager ├──────GET /packages/...──►│ /volume1/mosis/ │
|
||||
│ │◄─────[package.mosis]────┤ packages/{dev}/... │
|
||||
└──────────────┘ └──────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
@@ -577,9 +612,10 @@ adb shell am broadcast -a com.omixlab.mosis.INSTALL_APP \
|
||||
|
||||
## Deliverables
|
||||
|
||||
- [x] Architecture decided (C++ AppManager + Lua bindings)
|
||||
- [ ] AppManager C++ class
|
||||
- [ ] UpdateService background checker
|
||||
- [ ] App Store system app
|
||||
- [ ] App Store system app (RML/Lua)
|
||||
- [ ] Lua API bindings (mosis.apps, mosis.app)
|
||||
- [ ] Installation progress UI
|
||||
- [ ] Uninstall confirmation UI
|
||||
@@ -590,10 +626,10 @@ adb shell am broadcast -a com.omixlab.mosis.INSTALL_APP \
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. App backup to cloud?
|
||||
2. Family sharing / multiple devices?
|
||||
3. Enterprise MDM integration?
|
||||
4. Sideloading policy?
|
||||
1. ~~App backup to cloud?~~ → Defer to post-MVP (local backups only)
|
||||
2. ~~Family sharing / multiple devices?~~ → Defer to post-MVP
|
||||
3. ~~Enterprise MDM integration?~~ → Not needed for self-hosted
|
||||
4. ~~Sideloading policy?~~ → Enabled via Settings toggle (developer mode)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user