# v0.3 Research Summary **Milestone:** v0.3 Reimagining Cloud Storage integration **Date:** 2026-06-17 ## Stack Additions - Keep the current stack and add a provider capability/action layer rather than replacing storage. - Add PostgreSQL-backed cloud item metadata and analysis/index state. - Add a bounded byte-cache/offload service for preview/extraction/open flows. - Use Celery for cloud analysis, cache hydration, retries, and provider refresh jobs. - Use PostgreSQL full-text search for keyword/sentence search; consider `pgvector` for idea/semantic search without a separate vector DB. ## Feature Table Stakes - Cloud files behave locally for open/preview/upload/move/delete/rename/create-folder where provider capabilities allow. - Users can analyze selected files, folders, or whole connections. - Analyzed cloud documents become classified and smart-searchable alongside local documents. - Search never downloads bytes at query time; it reads persisted extracted/indexed data. - DocuVault minimizes local storage by caching bytes only when needed and evicting them safely. ## Architecture Direction - Keep provider-owned cloud bytes as source of truth. - Store metadata, text, topics, embeddings, and statuses in DocuVault. - Separate local/imported `documents` from cloud item index records unless a later phase intentionally unifies them. - Extend `StorageBrowser.vue` with capability-aware actions instead of creating a second file manager. - Split `backend/api/cloud.py` as behavior grows. ## Watch Out For - Do not accidentally build a full cloud mirror. - Treat destructive cloud actions as real provider mutations. - Model provider capability differences explicitly. - Track etags/versions so analyzed search data can become stale instead of silently wrong. - Add preflight estimates and confirmation before large "analyze all" jobs. - Preserve SSRF, credential encryption, ownership checks, and admin privacy boundaries. ## Key Sources - Microsoft Graph `driveItem`: https://learn.microsoft.com/en-us/graph/api/resources/driveitem?view=graph-rest-1.0 - Google Drive uploads: https://developers.google.com/workspace/drive/api/guides/manage-uploads - Nextcloud WebDAV operations: https://docs.nextcloud.com/server/latest/developer_manual/client_apis/WebDAV/basic.html - Celery task retries: https://docs.celeryq.dev/en/stable/userguide/tasks.html - Redis cache eviction: https://redis.io/docs/latest/develop/reference/eviction/ - pgvector: https://github.com/pgvector/pgvector