Server to support handling of all CEDAR resources
If you have questions about this repository, please subscribe to the CEDAR Developer Support mailing list. After subscribing, send messages to cedar-developers at lists.stanford.edu.
Service to support storage and management of CEDAR metadata resources
License: Other
Server to support handling of all CEDAR resources
If you have questions about this repository, please subscribe to the CEDAR Developer Support mailing list. After subscribing, send messages to cedar-developers at lists.stanford.edu.
Document the search endpoint. Specifically, provide documentation for 'search instances by templateId'.
Related to #2 and #112
Parent of #44
Parent of #45
Parent of #46
Parent of #47
Parent of #48
Parent of #49
Parent of #51
Parent of metadatacenter/cedar-model-validation-library#102
Parent of metadatacenter/cedar-project#840
Parent of metadatacenter/cedar-project#841
Instead of import_mode flag on POST use PUT for resource creation
Related to #33
Write tests in category 'Template Fields' in Resource Server sheet.
Use test pattern at Pattern Sheet when writing tests.
When done, update test row completion status in spreadsheet.
Also update totals sheet at Totals Sheet.
Currently the REST call returns the name, description, version, creation date and last modified date of previous versions of a resource.
We would also like to put the user name of the creator and modifier there so that we can display it.
Related to #47
A redirection from metadatacenter/cedar-artifact-server#5
The token should be renewed in the background, but instead of this, an error is shown.
Write tests in category 'Commands' in Resource Server sheet.
Use test pattern at Pattern Sheet when writing tests.
When done, update test row completion status in spreadsheet.
Also update totals sheet at Totals Sheet.
Resource reindexing should be done on a different thread. Otherwise, the system is blocked until reindexing is done.
The derivedFrom information in an artifact report call lists the created on and last modified on dates.
Add the user. names of the corresponding users.
Related to #46
Write tests in category 'Template Elements' in Resource Server sheet.
Use test pattern at Pattern Sheet when writing tests.
When done, update test row completion status in spreadsheet.
Also update totals sheet at Totals Sheet.
For the enriched functionality of the info panel it will be useful to have a REST call which searches for a node (folder or resource) with a given @id
Write tests in category 'Folders Contents' in Resource Server sheet.
Use test pattern at Pattern Sheet when writing tests.
When done, update test row completion status in spreadsheet.
Also update totals sheet at Totals Sheet.
Upload multiple resources in a single action, using a single file. This would be particularly useful to upload multiple instances of a template
Write tests in category 'Search' in Resource Server sheet.
Use test pattern at Pattern Sheet when writing tests.
When done, update test row completion status in spreadsheet.
Also update totals sheet at Totals Sheet.
Currently, we demand that a user supplies a target folder ID for a resource upload. Should not demand this folder ID and instead default to the user's home folder is it is not supplied.
When calling the REST endpoints to get an RDF n-quad serialization of a resource we incorrectly use the application application/json content type instead of the application/n-quads type.
An example call that exhibits this behaviour:
GET /template-instances/{template_instance_id}
The isBasedOn field returned for instance summary calls is currently null.
Ensure that we are consistently using the Accept and Content Type headers.
The templates, elements and field will be application/json and perhaps application/schema+json; the instances will be application/json and application/ld+json and application/n-quads.
When posting resources with import_mode=true we get an internal server errors.
Permissions must be considered, of course.
As per metadatacenter/cedar-artifact-server#50, a template report REST call should list all the instances derived from a template. These seem to be missing.
Also consider also consider artifact visibility (#48) and creator and modifier user names (#47).
Steps to reproduce:
Status: 500, Internal Server Error
URL: https://resource.metadatacenter.orgx/templates/https%3A%2F%2Frepo.metadatacenter.orgx%2Ftemplates%2Fbe2146e2-b327-4f7f-bb5c-f9774f6ab78d
Method: PUT
Message: Failed to remove resource https://repo.metadatacenter.orgx/templates/be2146e2-b327-4f7f-bb5c-f9774f6ab78d from the index
Exception: java.io.IOException: Failed to remove resource https://repo.metadatacenter.orgx/templates/be2146e2-b327-4f7f-bb5c-f9774f6ab78d from the index
org.metadatacenter.cedar.resource.search.elasticsearch.ElasticsearchService.removeFromIndex(ElasticsearchService.java:125)
org.metadatacenter.cedar.resource.search.SearchService.removeResourceFromIndex(SearchService.java:67)
org.metadatacenter.cedar.resource.search.SearchService.updateIndexedResource(SearchService.java:84)
org.metadatacenter.cedar.resource.search.SearchService.updateIndexedResource(SearchService.java:92)
controllers.AbstractResourceServerController.executeResourcePutByProxy(AbstractResourceServerController.java:438)
controllers.TemplateServerController.updateTemplate(TemplateServerController.java:56)<br
...
Probably this is the most important server, but double check workspace, user, template as well
Currently, only the template instance calls return n-quads as a possible response type.
Would be nice to support this serialization all other calls that returns template and elements instances (e.g., search).
The search endpoint returns an error if the sort parameter is null or not present. Example: https://resource.metadatacenter.net/search?q=*&resource_types=template
Currently works well but is initiated from the client where it should ideally happen automatically on the server side.
Write tests in category ' Folders' in Resource Server sheet.
Use test pattern at Pattern Sheet when writing tests.
When done, update test row completion status in spreadsheet.
Also update totals sheet at Totals Sheet.
Previously the two versioning related filters were validated, but if their value was invalid, they were silently replaced with the "all" value.
Change this behavior to report wrong values.
If the parameters are missing, default to all (ass before).
Validate route returns 500 on bad POST body.
e.g.,
curl -X POST --data-binary @bad_file.json --header "Authorization: apiKey AKEY" --header 'Accept: application/json' 'https://resource.staging.metadatacenter.org/command/validate?resource_type=element'
For the enriched info panel it would be useful to have a search which returns all versions of a resource given the @id of one resource in the version history
Check that uploaded artifacts specify current model and throw error if not. (Ultimately we may try to patch.)
Related front end task:
metadatacenter/cedar-template-editor#697
Currently if a user has read access to a given resource, he/she can edit the description from the info panel.
This should be possible only if the user has write permission
Currently only the path as text is returned. This is good for display in the info panel, but can not be used for easy navigation.
Add path info as an array with minimalist content to these two calls on the resource server:
Implement endpoint to regenerate the Elasticsearch index if necessary. Zero downtime is required
If no explicit resource_types parameter is passed it should default to all resources.
For example, the following call generates an error:
curl -H "Content-Type: application/json" -H "Authorization: apiKey " -X GET "https://resource.metadatacenter.net/search?q=Study"
Internal server instead of 401/403.
e.g/.
curl -X GET --header "Authorization: apiKey a3beee754f96fb2f1b137c584bcabccb35ba8aa02307fc56e30a681b07ce0e36" --header 'Accept: application/json' 'https://resource.metadatacenter.net/template-instances/https%3A%2F%2Frepo.metadatacenter.net%2Ftemplate-instances%2Fd4f1059e-8e27-4166-902f-be064f49d51c'
Write tests in category 'Template Instances' in Resource Server sheet.
Use test pattern at Pattern Sheet when writing tests.
When done, update test row completion status in spreadsheet.
Also update totals sheet at Totals Sheet.
Info calls for artifacts list a variety of related resources (e.g., version history, instances, derived from etc.) and give a brief summary of each resource.
Currently, the call does not indicate that a particular resource may not be accessible by the user that made the REST call. Need a consistent means to indicate this.
Make sure users cannot delete shares resources.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.