Skip to content

Releases: CDLUC3/dmsp_aws_prototype

v1.4.3

06 Aug 18:12
9b11c1f
Compare
Choose a tag to compare
  • Added new DynamoDB Table to store copies of data from other systems (e.g. ROR, re3Data, SPX, etc.) #84
  • Switched use of homegrown !ssm_parameter resolver to the community managed !ssm resolver in Sceptre configs. #152
  • Extracted AWS SAM Lambda code and most scripts into the new dmsp_api_prototype repo

v1.4.2

17 Jul 20:52
174aca8
Compare
Choose a tag to compare

Changes to add support for the GET /dmps API endpoint #144

Additional documentation on the functionality new API endpoint can be found on the API Wiki page

Changes

  • Uc3DmpDynamo gem

    • Updated to allow the initializer to accept an incoming table name to support calls against our Index Dynamo Table (temp replacement for OpenSearch)
  • DmpIndexer Lambda function

    • Make it a little more DRY
    • Added a few new attributes (was originally just the DMP PK):
      • modified date to support sorting
      • title to support sorting and search
      • abstract to support search
    • Switch to use PERSON_INDEX and AFFILIATION_INDEX instead of ORCID_INDEX and ROR_INDEX to more accurately represent the fact that they can be based on emails and Crossref org/funder ids as well
  • Dynamo seed script

  • Removed old Augmenter records that are no longer used.

  • Update the dynamo_seed script to add a "org_access_level": "all" attribute to the provenance record. This allows the DMPTool to query for all Orgs. API integrations will use "org_access_level": "restricted" along with a list of approved ROR ids that will be stored in SSM

  • Uc3DmpProvenance gem changes

    • Update to fetch the approved list of ROR ids from SSM for the system making the call and append it to the JSON fetched from the Dynamo table record
    • Will be adding the org_access_level flag and SSM for_list updates to the Add Api Client PR that sets up the pilot partner API access
  • Uc3DmpId gem changes

    • Updated the finder class to support searching by affilaition, funder, and person. The results are combined so, for example, if the request asks for a specific org and funder the results set will only return results that include both the specified funder and specified org
  • GetDmps API Lambda function changes

    • Updated to do a security check using the changes made to the Uc3DmpProvenance gem so that we allow a caller whose org_access_level is set to all can query any org and if not, they can only query RORs that are in their new SSM parameter ror_list. If they do not specify an org it will use all of the RORs that are in that SSM parameter
    • Updated to pass the org, funder and owner params through to the Uc3DmpId finder
    • Updated to support search by title and abstract
    • Updated to sort by title or modified (default is by modified date desc)
    • Updated to allow page and per_page pagination (default is page 1 and per_page 25 with a max of 100)
    • Updated response to include total_items, total_pages along with first, prev, next, last (when appropriate) to help make it easier for callers to paginate through results
  • Pilot partner API clients

    • Added a new CloudFormation template to support the creation of Cognito User Pool Clients with permissions to access the API
    • Added Sceptre config for our 3 initial partners
    • Added SSM parameters to store the ROR ids for each corresponding Cognito client
  • Swagger docs

    • Updated the Swagger site to include the new GetDmps function

Deploying

  • To deploy the API Clients into Cognito: sceptre create [env]/regional/api-clients/[name].yaml
  • To deploy the DmpIndexer Lambda: cd src/lambdas/indexers/dmp && ruby sam_build_deploy.rb [env] true true [log_level]
  • To deploy the gems and GetDmp Lambda changes: cd src/sam && ruby sam_build_deploy.rb [env] true true [log_level]
  • Run the seed_dynamo script to update the DMPTool provenance record with the new org_access_level attribute: cd src/scripts && ./seed_dynamo [env] dmptool dmptool.org
  • Rebuild the Index table: cd src/scripts && ruby recreate_dmp_index.rb [env] [index table name]
  • Don't forget to run Sceptre updates for each of the API Clients to add their ROR lists to SSM. These can be found in the Add Api Client PR
  • Rerun the Harvesters to update their findings with the domain for the interaction with the DMPTool pilot project pages: ruby reharvest-related-works.rb prd [table_name] [event_bus_arn]

v1.4.1

17 Jul 14:35
a6b7368
Compare
Choose a tag to compare

Fix for DMPTool issue #626

  • Update to Uc3DmpId gem to correct issue with saving changed to the approval status of related works found by a harvester
  • Update to the DataCiteHarvester Lambda to include the domain in the metadata about the related work so that it can properly be tied back to the HARVESTER_MODS record when the update occurs

v1.4

05 Jun 23:04
b8947ef
Compare
Choose a tag to compare
  • Update the uc3-dmp-id gem so that it does not overwrite the dmproadmap_related_identifiers array which contains the PDF narrative download
  • Update LambdaLayer dependencies
  • Update DMP landing pages
    • Fix issue with URLs being used when the value is not a URL (e.g. role 'other')
    • Fix issue with Grant ID being displayed twice
    • Updated Funding status to use whatever was sent in rather than attempting to determine it based on the existence of the GrantID

v1.3

29 May 17:55
c6fdbeb
Compare
Choose a tag to compare
  • Dependency updates for all Lambdas, ruby gems and the Landing page code

v1.2

17 May 15:10
a514ee0
Compare
Choose a tag to compare
  • Added BackupVault resources for stg and prd to ensure that our S3 bucket for CloudFront is being backed up in the local UC3 account as well as a copy in the Main account

v1.1

13 May 15:40
0f77402
Compare
Choose a tag to compare
  • Added a new Dynamo table to act as a temporary index until we get OpenSearch in a stable situation and have determined if we want to run individual clusters per app or have a single shared cluster with indexes for each app
  • Enabled point in time recovery for Dynamo tables as part of #97
  • Added initial OpenSearch template and config. We are not using it ATM, but we can use it as our basis when we implement OS
  • Added a lambda-iam template to help manage IAM resources needed by our Lambdas (part of our larger effort to make the SAM managed resources more atomic)
  • Removed old public subnet info from the Sceptre templates since those subnets were deleted
  • Added a DmpIndexer lambda that is triggered by the Dynamo stream to manage our DMP indices (This lambda has its own build script which is part of our larger effort to make the SAM managed resources more atomic)
  • Added a HarvestableDmps lambda that is triggered by a scheduled EventBridge job. This lambda finds DMPs that we need to search for related works for out on the inter-webs. It groups the DMPs by their organizational affiliation and then publishes a message on EventBridge to signal individual harvesters to go out and search (This lambda has its own build script which is part of our larger effort to make the SAM managed resources more atomic)
  • Added a DataCiteHarvester lambda that is triggered by a message from the HarvestableDmps lambda. This lambda communicates with the DataCite REST API in an effort to find related works. (This lambda has its own build script which is part of our larger effort to make the SAM managed resources more atomic)
  • Added a new LambdaLayer. Its build script will rebuild dependent lambdas. (part of our larger effort to make the SAM managed resources more atomic)
  • Some refactoring of our awards API search lambdas to address issues with how we were mapping the results from the various funder APIs
  • Update to the PostCitations lambda to handle scenarios where the owner of the DOI does not provide a BibTex citation format
  • Removed the old DmpIndexer function because we replaced with the independent version noted above (part of our larger effort to make the SAM managed resources more atomic)
  • Updated the EZID publisher to stop using people's emails as the identifier when an ORCID is not available
  • Fix for the uc3-dmp-citation gem to address an issue where we were not using the URL
  • Updated the uc3-dmp-external-api gem so that it can be passed a timeout value. The default is 10 seconds.
  • Updates to the uc3-dmp-id gem's Comparator class to do a better job in detecting matches between a DMP and a related work. These changes were informed by our testing wit the pilot project
  • Updated the uc3-dmp-id Finder and Helper classes to attach any harvester findings to the DMP in the dmphub_modifications array
  • Added a lot of helper scripts to src/scripts

v1.0

19 Dec 22:16
bca403a
Compare
Choose a tag to compare

Initial build of the DMPHub AWS based system. See the Readme for more information

v1.0-beta

02 Oct 17:22
31fc85c
Compare
Choose a tag to compare
v1.0-beta Pre-release
Pre-release

Initial v1.0 to be deployed to the stg environment