Age | Commit message (Collapse) | Author |
|
|
|
|
|
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)
|
|
Remove extra colon (:) at the end of the name that was leading to the number
of cases not being presented as expected.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
Make UI somewhat consistent with the GN2 UI.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
* 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>
|
|
Extract the functions acting on the session into a separate module and
namespace the session variable to prevent conflicts.
|
|
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
* 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>
|
|
* gn3/api/metadata.py (publication): Update docstring.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
|
|
Scope is superceded by CLI utility script.
|
|
|
|
* 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>
|
|
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
* gn3/api/metadata.py: Remove get_trait_metadata import.
(trait_metadata): Delete.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
* 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>
|
|
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
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.
|
|
|
|
Useful for debugging issues within the guix containers.
|
|
This information is useful to assist with debugging issues within the guix
containers.
|
|
|
|
* gn3/db/rdf.py: Importh pymonad.Nothing.
(get_dataset_metadata): Replace SELECT with CONSTRUCT.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
* gn3/db/rdf.py: Import unquote and urlparse.
(strip_url): New function.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
|
|
|
|
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.
|
|
Add UI and code to enable the administrative user to register new OAuth2
clients that can access the API server.
|
|
* 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
|
|
* 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
|
|
A script to assign existing data not assigned to any group to publicly-visible
resources.
|
|
|
|
Enable users with the appropriate privileges to masquerade as other users by
providing an endpoint that provides a new token for the "masqueradee"
|
|
|
|
|