Summary
Audit, validate, and implement the necessary endpoints required to sync and authenticate official Supernote Partner Apps (macOS, Windows, iOS, and Android).
Technical Context
1. Authentication & Device Handshake
The official Partner Apps expect specific routes during the login process:
- Account Login:
/api/official/user/account/login/new (POST)
- Equipment Verification:
/api/terminal/equipment/unlink (POST) and /api/terminal/user/activateEquipment (POST)
- Ensure response formats match the official
UserVO and LoginVO structures exactly, as mismatching payload fields will cause the Partner App client to crash or reject the server.
2. Schedule & To-Do Syncing
The companion apps display user tasks and schedules. They do not use the server's custom /api/schedule/ REST routes; instead, they call the official OpenAPI routes:
- Path prefix:
/api/file/schedule/
- Endpoints to support:
/api/file/schedule/group/all (POST) to list groups.
/api/file/schedule/task/all (POST) to list tasks.
/api/file/query/schedule/sort (POST) to retrieve task ordering.
3. Action Items
- Add route mappings in
supernote/server/routes/schedule.py for the /api/file/schedule/ and /api/file/query/schedule/ prefixes.
- Map these new routes to the existing
ScheduleService.
- Audit payload serialization in
supernote/models/schedule.py against the Partner App's expectations.
Summary
Audit, validate, and implement the necessary endpoints required to sync and authenticate official Supernote Partner Apps (macOS, Windows, iOS, and Android).
Technical Context
1. Authentication & Device Handshake
The official Partner Apps expect specific routes during the login process:
/api/official/user/account/login/new(POST)/api/terminal/equipment/unlink(POST) and/api/terminal/user/activateEquipment(POST)UserVOandLoginVOstructures exactly, as mismatching payload fields will cause the Partner App client to crash or reject the server.2. Schedule & To-Do Syncing
The companion apps display user tasks and schedules. They do not use the server's custom
/api/schedule/REST routes; instead, they call the official OpenAPI routes:/api/file/schedule//api/file/schedule/group/all(POST) to list groups./api/file/schedule/task/all(POST) to list tasks./api/file/query/schedule/sort(POST) to retrieve task ordering.3. Action Items
supernote/server/routes/schedule.pyfor the/api/file/schedule/and/api/file/query/schedule/prefixes.ScheduleService.supernote/models/schedule.pyagainst the Partner App's expectations.