-
Notifications
You must be signed in to change notification settings - Fork 6
Mongo views #353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mongo views #353
Conversation
|
Should we have a script that runs then the database is first created? Are these operations idempotent so that we can run the script every time we startup the services? or do we have to worry about doing it only the first time? |
I think we need to import these when database is first created. I need to look into a more programmatic way to import those script. But once it's there we don't need to worry about it when we start up the services |
|
I am going to mark this one approved. I was able to generate the views in Studio 3T and these also work with list access for the other pull request. |
tcnichol
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was able to generate views, and once I did that I could filter access on other pull request.
* add logic to filter user * add filters to file * list files working too * add same filter for folder * include executions * exempt the current resource owner
|
for reference, here is the mongo equivalent command without Studio 3T: |
* add a readme * add listener job update view * temp * add init * add to production docker-compose as well * 343 list resources that user has access (#355) * add logic to filter user * add filters to file * list files working too * add same filter for folder * include executions * exempt the current resource owner * add test database * rewrite createView part * rewrite init script but it's still not working yet * fix typo * fix linting
* Added group_id to authorization * Added list of group_ids instead of one group_id per entry * Addressing comments * fixing lint failure * Added new component for file actions (#352) * Added new component for file actions * Tested file download and file delete from File page * Verified after deleting file, page navigates back to main dataset page * Fixed version-not-updating error * Updated onSave sequence to first synchronously update the file and then subsequently call listVersions API to display on the frontend * Fixed lint issues by running eslint * UI for displaying logs on extractors (#317) * Static UI for displaying logs on extractors * Created 2 React custom components: * ExtractorStatus -- UI table to display summary of job/progress so far * ExtractorLogs -- terminal-like UI to display logs in real-time as they are being fetched * [WIP] Enable extractor job id retrieval from backend * Updated redux store value when job id is returned * Added actions for job update, job summary API endpoints * [WIP DO NOT MERGE] Testing frontend functionality with dynamic log rendering * Updated API endpoints, return payload, reducers and actions (#330) * Updated API endpoints, return payload, reducers and actions for the extractor jobs * Tested API calls to fetchJobSummary, fetchJobUpdates from frontend, able to receive extractor job data * Tested submit job process flow, able to retrieve extractor job id from the backend * Removed redundant code --------- Co-authored-by: Chen Wang <[email protected]> * Integrated UI with backend * Tested with sample extractor logs, able to view both extractor status and summary from the UI * Removed hardcoding of job id * Fixed indentation * Adding download button on UI to download correct verison file (#334) * Adding download button on UI to download correct verison file * fix filename issue * Update FileVersion.ts --------- Co-authored-by: Chen Wang <[email protected]> * fix member typing (#336) * fix member typing * adjust the test so it can pass * fixing error of blank page on submit file to extractor (#338) files.py - renaming resubmit method codegen fixing error in listeners.py * Modified extractor job summary duration calculation * Moving fetchJobSummary, fetchJobSummary API calls to ExtractorStatus component to fix interval issue --------- Co-authored-by: Chen Wang <[email protected]> Co-authored-by: Dipannita <[email protected]> Co-authored-by: Todd Nicholson <[email protected]> * Properly interpret extractor statuses (#356) * various fixes to message listener * black formatting * Added new component for file actions (#352) * Added new component for file actions * Tested file download and file delete from File page * Verified after deleting file, page navigates back to main dataset page * Fixed version-not-updating error * Updated onSave sequence to first synchronously update the file and then subsequently call listVersions API to display on the frontend * Fixed lint issues by running eslint * UI for displaying logs on extractors (#317) * Static UI for displaying logs on extractors * Created 2 React custom components: * ExtractorStatus -- UI table to display summary of job/progress so far * ExtractorLogs -- terminal-like UI to display logs in real-time as they are being fetched * [WIP] Enable extractor job id retrieval from backend * Updated redux store value when job id is returned * Added actions for job update, job summary API endpoints * [WIP DO NOT MERGE] Testing frontend functionality with dynamic log rendering * Updated API endpoints, return payload, reducers and actions (#330) * Updated API endpoints, return payload, reducers and actions for the extractor jobs * Tested API calls to fetchJobSummary, fetchJobUpdates from frontend, able to receive extractor job data * Tested submit job process flow, able to retrieve extractor job id from the backend * Removed redundant code --------- Co-authored-by: Chen Wang <[email protected]> * Integrated UI with backend * Tested with sample extractor logs, able to view both extractor status and summary from the UI * Removed hardcoding of job id * Fixed indentation * Adding download button on UI to download correct verison file (#334) * Adding download button on UI to download correct verison file * fix filename issue * Update FileVersion.ts --------- Co-authored-by: Chen Wang <[email protected]> * fix member typing (#336) * fix member typing * adjust the test so it can pass * fixing error of blank page on submit file to extractor (#338) files.py - renaming resubmit method codegen fixing error in listeners.py * Modified extractor job summary duration calculation * Moving fetchJobSummary, fetchJobSummary API calls to ExtractorStatus component to fix interval issue --------- Co-authored-by: Chen Wang <[email protected]> Co-authored-by: Dipannita <[email protected]> Co-authored-by: Todd Nicholson <[email protected]> * Millisecond (#360) * it's seconds * add more icons * default to open tab --------- Co-authored-by: Aruna Parameswaran <[email protected]> Co-authored-by: Chen Wang <[email protected]> Co-authored-by: Dipannita <[email protected]> Co-authored-by: Todd Nicholson <[email protected]> * Context matches v1 type. (#328) * context is now changed to list union of AnyUrl or dict. This should make v2 compatible with some extractors from extractors-core which dynamically build the context. * formatting fix test * formatting * still getting pytest errors changed context from optional[list] to list with default value empty, but still is not fixing the issues. * should fix the tests * formatting * getting rid of class 'context element' not needed * getting rid of class 'context element' not needed * removing console log --------- Co-authored-by: Chen Wang <[email protected]> * Mongo views (#353) * add a readme * add listener job update view * temp * add init * add to production docker-compose as well * 343 list resources that user has access (#355) * add logic to filter user * add filters to file * list files working too * add same filter for folder * include executions * exempt the current resource owner * add test database * rewrite createView part * rewrite init script but it's still not working yet * fix typo * fix linting * Replaced EmbeddedSearch with custom search box component to fix session refresh issue (#365) * Tested dataset search by clicking button and pressing enter, able to view search results * match user_ids which is a list now (#368) * update to lookup query * update authorization_deps queries * simplify group logic in auth check * formatting * Formatting --------- Co-authored-by: Aruna Parameswaran <[email protected]> Co-authored-by: Chen Wang <[email protected]> Co-authored-by: Todd Nicholson <[email protected]> Co-authored-by: Max Burnette <[email protected]>
In this PR I created views for all the major resources we would need to list. I included a README on how to import them using studio 3T (see here: https://github.com/clowder-framework/clowder2/blob/e6cc94251d05cb7d1df29018817296168c97cdbc/scripts/mongoviews/README.md)
For most of the resources I just join the "dataset_id" with the dataset field in "authorization collection".
Metadata and listeners are trickier because they could be on "file" or on "dataset". So I end up doing a "facet" (if statement) first to see if resource type is "file" or "dataset.
If it's dataset, just join; If it's file, have another trip to connect with files collection first then join with "authorization"
Some of the examples
dataset
file
folder
metadata
listener_jobs
listener_job_update