mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-10-10 21:26:01 +02:00
* Update mode to be a default parameter in `FileStore.read` * Move query history exporting process to be a background job instead * Move hardcoded report-file-naming to a common utility function * Add type annotations * Update download component * Implement button to re-ping and download CSV file; fix up some backend file-checking logic * De-indent logic (w/ early return) * Return different error codes dependings on the type of task status * Add more resistant failure retrying mechanisms * Remove default parameter in helper function * Use popup for error messaging * Update return code * Update web/src/app/ee/admin/performance/query-history/DownloadAsCSV.tsx Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Add type to useState call * Update backend/ee/onyx/server/query_history/api.py Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Update backend/onyx/file_store/file_store.py Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Update backend/ee/onyx/background/celery/apps/primary.py Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Move rerender call to after check * Run formatter * Add type conversions back (smh greptile) * Remove duplicated call to save_file * Move non-fallible logic out of try-except block * Pass date-ranges into API call * Convert to ISO strings before passing it into the API call * Add API to list all tasks * Create new pydantic model to represent tasks to return instead * Change helper to only fetch query-history tasks * Use `shared_tasks` instead of old method * Address more comments from PR; consolidate how task name is generated * Mark task as failed if any exception is raised * Change the task object which is returned back to the FE * Add a table to display previously generated query-history-csv's * Add timestamps to task; delete tasks as soon as file finishes processing * Raise exception if start_time is not present * Convert hard-coded string to constant * Add "Generated At" field to table * Return task list in sorted order (based off of start-time) * Implement pagination * Remove unused props and cleanup tailwind classes * Change the name of kickoff button * Redesign how previous query exports are viewed * Make button a constant width even when contents change * Remove timezone information before comparing * Decrease interval time for re-pinging API * Add timezone to start-time creation * Add a refreshInterval for getting updated task status * Add new background queue * Edit small verbiage and remove error popup when max-retries is hit * Change up heavy worker to recognize new task in new module * Ensure `celery_app` is imported * Change how `celery_app` is imported and defined * Update comment on why `celery_app` must be imported * Add basic skeleton for new beat task to cleanup any dead / failed query-history-export tasks * Move cleanup task to different worker / queue * Implement cleanup task * Add return type * Address comment on PR * Remove delimiter from prefix * Change name of function to be more descriptive * Remove delimiter from prefix constant * Move function invocation closer to usage location * Move imports to top of file * Move variable up a scope due to undefined error * Remove dangling if-statement * Make function more pure-functional * Remove redefinition --------- Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>