Commit Graph
198 Commits
Author SHA1 Message Date
m 1460fdfe0e outbox integration 2026-09-12 22:08:29 +02:00
m 86006c285e remove swipe action 2026-09-12 20:58:27 +02:00
m 7cc8c6eb24 add saf config 2026-09-12 20:48:00 +02:00
m ec99d1ac18 swipe documents 2026-09-12 20:01:14 +02:00
m 06361ae62f create sub folders 2026-09-12 19:21:36 +02:00
m b7eb291c84 fix agent 2026-09-12 18:57:16 +02:00
m 608ef8757e fix vaultdrop fil darriane 2026-09-12 18:52:42 +02:00
m ea59c49547 add fichiers filters 2026-09-12 18:49:43 +02:00
m 4e7d368b2d floating nav bar interraction 2026-09-12 15:51:43 +02:00
m 925151faf3 floating nav bar interraction 2026-09-12 15:46:53 +02:00
m a1f59a3455 create folders and move files into 2026-09-12 15:34:49 +02:00
m fca8ef4c13 create folders 2026-09-12 15:07:59 +02:00
m bada082c35 create folders 2026-09-12 15:07:52 +02:00
m 5f90cc9059 local mode stored into local database 2026-09-12 14:11:27 +02:00
m 22858e38ce local mode stored into local database 2026-09-12 14:11:22 +02:00
m e314f63760 fix pdf viewer 2026-09-12 12:39:52 +02:00
m e30051d238 generate pdf and save them to the directory 2026-09-12 12:17:00 +02:00
m f2c8a27252 pdf build 2026-09-12 12:02:51 +02:00
m 3a232138bd multi select and generate pdf 2026-09-12 11:33:33 +02:00
m 9d44703400 zoom on documents 2026-09-12 11:06:59 +02:00
m e52624aed7 add focus mode on text and document 2026-09-12 10:30:49 +02:00
m 7dd3bc66f5 connexion status 2026-09-12 10:01:54 +02:00
m 9fed148a12 add local status 2026-09-12 10:01:43 +02:00
m 2d23ba1bde add mise 2026-09-12 09:46:14 +02:00
m e272ecfb44 add pdf viewer 2026-09-12 09:46:09 +02:00
m 1134ecaedb focus on document 2026-09-12 01:33:04 +02:00
m aa139b6d33 user modification date 2026-09-12 01:16:47 +02:00
m 0041a1a48a auth settings 2026-09-12 01:08:20 +02:00
m 45028dd70a auth settings 2026-09-12 01:08:10 +02:00
m ea11f28420 icones distinctes par categorie de document 2026-09-11 23:55:19 +02:00
m 13deb5e893 remove react native app 2026-09-11 23:44:04 +02:00
m 4314770096 load saf multi view 2026-09-11 23:31:03 +02:00
m 100bff994d dark mode, lignht mode 2026-09-11 23:19:37 +02:00
m 64690d11f9 add recente document 2026-09-11 23:07:23 +02:00
m eddf40d806 add application migration 2026-09-11 18:21:10 +02:00
m 2de3754ca9 preview document is working properly 2026-09-11 17:02:36 +02:00
m bca29ed26f filedao 2026-09-11 16:56:49 +02:00
m 28586931d3 saf scanner 2026-09-11 16:42:29 +02:00
m 93c9719969 navbar 2026-09-11 13:43:11 +02:00
m 3a57532b40 working kotlin mobile app 2026-09-11 13:10:40 +02:00
m b2d8f3702c kotlin refacto mobile app 2026-09-11 12:40:50 +02:00
m 6666c5b469 remove doc + saf 2026-09-11 11:14:20 +02:00
m 2d9be3f489 fix the unfixeble 2026-09-11 10:49:12 +02:00
m 76ed3aa66b add saf directory display fix 2026-09-10 23:08:17 +02:00
m 367073ed89 add floating nav bar + regroup files by date 2026-09-10 22:21:46 +02:00
m 6332e9cac4 add test + fix sqlite pb 2026-09-10 22:08:27 +02:00
m 4e2d92a80e login without distant server local only mode 2026-09-10 21:56:34 +02:00
m cac2400917 test(e2e): purge de l'active user avant de retirer l'override DB (évite le chargement lazy d'expo-sqlite sous Node) 2026-09-10 21:38:54 +02:00
m 0536fca6c3 feat(mobile): identité user-first — login/password, SecureStore, scoping par compte
- api: DeviceRegistration device-only, login/changePassword/resolveUser, interception 401 (purge) exonérée sur le login ; type User aligné sur le fil (is_admin)
- SecureStore (expo-secure-store v57) : token + profil, jamais en SQLite ; miroir active_user_id
- AuthContext : statut loading/signedOut/signedIn, bootstrap register→restore, signIn/signOut, garde-fou switch de compte
- app/login.tsx + gate de routes dans _layout (Redirect signedOut) ; i18n fr/en
- DB v5 : user_id sur pending_operations + resource_permissions (UNIQUE par user), repos scopés (user_id IS ? OR IS NULL)
- syncOutbox : delta permissions par compte (Map), outbox poussée du compte actif uniquement
- tests: register/login/401/resolve/changePassword, scoping outbox+permissions, migrations v5 ; e2e live revert register→login admin
2026-09-10 21:34:34 +02:00
m c2c7dddba6 feat(api): identité user-first — login/password, ownership user, fin du token device
- 000006 : users.username/username_normalized/password_hash/is_admin, index
  unique partiel sur username_normalized, DROP idx_users_email (unicité V1 =
  username, jamais email) ; 000007 destructif : resources.owner_id→user_id
  (FK→users, reset base dev), l'unicité racine devient par user
- pkg/passwd : argon2id (t=1,m=64MiB,p=4,k=32), comparaison constant-time,
  VerifyTimedEqual (délai égalisé dummy-hash) ; pkg/auth : subject=user_id +
  claim device_id, TTL 7 j sans refresh
- repository : Users (count/get/resolve-exact/create/update-password/
  mark-deleted), Devices.MarkUser (user_id INFORMATIF uniquement)
- handlers : POST /devices sans token, POST /auth/login (401 indistinguable
  user inconnu/mauvais mdp, device requis), PATCH /users/me/password
  (current_password, tokens non révoqués — limite V1), GET /users/resolve
  (exact lowercase, jamais email/is_admin) ; middleware RequireAuth
  (user authorisant, device porté) ; tout le scoping ressources passe user
- bootstrap admin : users vide + ADMIN_* absents → refus de démarrer ;
  .env.example ; docs/api-v1.md §2/§3/§7/§8
- tests : migrations 000006/000007 (up/down), pkg/auth Identity, handlers
  login/password/resolve, helpers refactorés registerAndLogin, repo tests
  scopés user — suite backend verte
2026-09-10 21:21:36 +02:00