aboutsummaryrefslogtreecommitdiff
path: root/gn3
AgeCommit message (Collapse)Author
2023-07-19Extract code dealing with ProbeSets to their own module.Frederick Muriuki Muriithi
2023-07-19Extract reusable code to separate moduleFrederick Muriuki Muriithi
Extract the reusable function into a separate `query_tools` module for use in other modules.
2023-07-18Bug: Change from `_id` to `id_` to avoid downstream breakage.Frederick Muriuki Muriithi
The downstream code expects `id_` not `_id`.
2023-07-18Fix wrong import, and typing issues.Frederick Muriuki Muriithi
2023-07-18Fetch a single publication by `PublicationId`Frederick Muriuki Muriithi
2023-07-18Fetch metadata for a single phenotype.Frederick Muriuki Muriithi
2023-07-18Fetch single phenotype trait by `dataset_id` and `trait_name`.Frederick Muriuki Muriithi
2023-07-18Bug: Fetch group name by dataset_idFrederick Muriuki Muriithi
Change the code to fetch the group name by the dataset ID, since according to usage[1] of the `retrieve_group_name` function, the value passed in is the `dataset_id` and not the `group_id`. Change the name from `retrieve_group_name` to `retrieve_phenotype_group_name` to more clearly indicate that this function concerns itself with the groups that relate to phenotypes. [1](https://github.com/genenetwork/genenetwork2/blob/1bbb0430732b7fa5102d7dcbda80ebda252f5424/wqflask/wqflask/metadata_edits.py)
2023-07-17Fix dict key nameFrederick Muriuki Muriithi
Remove extra colon (:) at the end of the name that was leading to the number of cases not being presented as expected.
2023-07-12Bug: Set the `data_exists` variable within the context managerFrederick Muriuki Muriithi
The `cursor.fetchone()` call that was used as the condition to the `if` was called outside of the context manager, and therefore would always give a non-truthy value at best and an inconsistent result at worst. This commit gets the value before the context manager has exited and stores it for later use.
2023-07-12Bug: Retrieve configs from app, not environmentFrederick Muriuki Muriithi
Retrieve the configuration values from the application object, not from the environment. We are assured of having the configuration values set in the application - we do not have that assurance for the environment.
2023-07-12Move documentation comment to beginning of functionFrederick Muriuki Muriithi
2023-07-06Provide the client_id as part of the post request.Frederick Muriuki Muriithi
2023-07-04Fix minor UI bugFrederick Muriuki Muriithi
2023-07-03Spruce up UIFrederick Muriuki Muriithi
Make UI somewhat consistent with the GN2 UI.
2023-07-03Enable deletion of OAuth2 clients.Frederick Muriuki Muriithi
2023-06-30Edit some of the details of OAuth2 clientsFrederick Muriuki Muriithi
2023-06-30List all OAuth2 clients.Frederick Muriuki Muriithi
2023-06-23Fetch all collections, rename variablesFrederick Muriuki Muriithi
Fetch from `__REDIS_COLLECTION_KEY__` not `"collections"` to ensure all collections are retrieved correctly. Rename from `__*_DOC__` to `__REDIS_*_KEY__` to more clearly express what the variables are about.
2023-06-20Fix conflictszsloan
2023-06-20Bug: Don't overwrite/delete old collectionsFrederick Muriuki Muriithi
2023-06-15Fetch genotypes from virtuosoMunyoki Kilyungi
* gn3/api/metadata.py: Import get_genotype_metadata. (genotype): New end-point. * gn3/db/rdf.py (get_phenotype_metadata): New function. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-13Namespace session variableFrederick Muriuki Muriithi
Extract the functions acting on the session into a separate module and namespace the session variable to prevent conflicts.
2023-06-12Delete unused importMunyoki Kilyungi
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-12Fetch phenotypes from virtuosoMunyoki Kilyungi
* gn3/api/metadata.py: Import get_phenotype_metadata. (phenotype): New end-point. * gn3/db/rdf.py (get_phenotype_metadata): New function. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-12Correct publication function docstringMunyoki Kilyungi
* gn3/api/metadata.py (publication): Update docstring. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-12Delete unused get_trait_metadata functionMunyoki Kilyungi
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-08Fix bugs with accessing/creating collectionszsloan
2023-06-07auth: Remove "migrate-data" scope.Frederick Muriuki Muriithi
Scope is superceded by CLI utility script.
2023-06-07auth: Remove obsoleted scopeFrederick Muriuki Muriithi
2023-06-07Add publication end-pointMunyoki Kilyungi
* gn3/api/metadata.py: Import get_publication_metadata (publication): New endpoint. * gn3/db/rdf.py (get_dataset_metadata): New function. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-07Nest duplicate entries into a list from a sparql resultMunyoki Kilyungi
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-07Remove trait_metadata endpointMunyoki Kilyungi
* gn3/api/metadata.py: Remove get_trait_metadata import. (trait_metadata): Delete. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-06Pass geoSeries as a URLMunyoki Kilyungi
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-06Rename gn:geoPlatform -> gn:geoPlatformUrlMunyoki Kilyungi
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-06Match how dataset metadata is fetched with GN1Munyoki Kilyungi
* gn3/db/rdf.py (sparql_query): Parse CONSTRUCTS and SELECTS differently. (strip_url): Rename to ... (get_url_local_name): ... this. (get_dataset_metadata): Fetch extra fields in RDF. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-06Replace taxon prefix with ncbiTaxon which references NCBIMunyoki Kilyungi
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-06Rename dataset_metadata -> datasetMunyoki Kilyungi
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-05Logging: Don't allow getting user info to stop application startingFrederick Muriuki Muriithi
In certain scenarios (probably due to host contamination) the effective UID of the running application is not the expected "genenetwork" user, rather, it is a user on the host system, which leads to the error: KeyError: 'getpwuid(): uid not found: 1000' This commit prevents the application from failing in such a case, but still logs out such weirdness.
2023-06-05Logging: Get user information.Frederick Muriuki Muriithi
2023-06-05Logging: Get guix profile information if present.Frederick Muriuki Muriithi
Useful for debugging issues within the guix containers.
2023-06-05Logging: Get info about pythonFrederick Muriuki Muriithi
This information is useful to assist with debugging issues within the guix containers.
2023-06-05Handle unhandled SQLite3 errors.Frederick Muriuki Muriithi
2023-06-02Replace SELECT with CONSTRUCT when fetching a dataset's metadataMunyoki Kilyungi
* gn3/db/rdf.py: Importh pymonad.Nothing. (get_dataset_metadata): Replace SELECT with CONSTRUCT. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-06-02Create a function for stripping the last bit from a URLMunyoki Kilyungi
* gn3/db/rdf.py: Import unquote and urlparse. (strip_url): New function. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-05-30Provide logout link.Frederick Muriuki Muriithi
2023-05-30auth: Change check for client secretFrederick Muriuki Muriithi
We are saving the client secret in an encrypted form, meaning we have to verify that the CLIENT_SECRET that is provided is the same one as was generated at registration in a different way. Initially, I was doing a direct comparison, having saved the CLIENT_SECRET value as unencrypted plain-text.
2023-05-29auth: Enable registration of OAuth2 clientsFrederick Muriuki Muriithi
Add UI and code to enable the administrative user to register new OAuth2 clients that can access the API server.
2023-05-29Enable Administrator login on GN3Frederick Muriuki Muriithi
* gn3/auth/authentication/oauth2/views.py: Remove endpoint * gn3/auth/authorisation/users/admin/__init__.py: New admin module * gn3/auth/authorisation/users/admin/ui.py: New admin module * gn3/auth/authorisation/users/admin/views.py: New admin module * gn3/auth/views.py: Use new admin module * gn3/errors.py: Fix linting errors * gn3/templates/login.html: New html template * main.py: Fix linting errors
2023-05-27Document Use of OAuth2 ClientsFrederick Muriuki Muriithi
* docs/authentication_and_authorisation/oauth2_clients.md: New documentation * gn3/auth/authentication/oauth2/server.py: Raise appropriate error if no client is found. * gn3/auth/authentication/oauth2/views.py: Handle exception in the case where a UI should be presented to the user, rather than presenting the raw JSON response to the user. * gn3/errors.py: Handle any authlib OAuth2Error at the application's top-level * gn3/templates/oauth2/oauth2_error.html: Handle any authlib OAuth2Error at the application's top-level