DataONEorg / bookkeeper

Bookkeeper keeps track of DataONE product subscriptions and quotas for researchers using the extended services.
Other
1 stars 2 forks source link

Update product features definitions #37

Closed gothub closed 4 years ago

gothub commented 4 years ago

The file ./resources/db.migrations/V1.8__Insert_Standard_Products.sql appears to be out of date, as it referes to quota types such as branded_portals, repository_storage_quota.

It would be useful to review this entire file to ensure that it is current.

gothub commented 4 years ago

Also, I created an order, and then called the /orders/<id>/pay endpoint, and only a repository_storage was created. Here is the order, obtained via GET ./orders/<id>:

  "id": 5,
  "object": "order",
  "amount": 1200000,
  "amountReturned": 0,
  "charge": {
    "id": 2,
    "object": "charge",
    "amount": 50000,
    "amountRefunded": 0,
    "created": 1559768309,
    "currency": "USD",
    "customer": 1,
    "description": "DataONE Order # 1",
    "invoice": 2,
    "metadata": {},
    "order": 2,
    "paid": true,
    "statementDescriptor": "DataONE Order # 1",
    "status": "succeeded"
  },
  "created": 1593109671,
  "currency": "USD",
  "customer": 1,
  "email": "slaughter@nceas.ucsb.edu",
  "items": [
    {
      "object": "order_item",
      "amount": 1200000,
      "currency": "USD",
      "description": "DataONE Hosted Repository",
      "parent": 11,
      "quantity": 1,
      "type": "sku"
    }
  ],
  "metadata": {},
  "status": "paid",
  "statusTransitions": {
    "created": 1559768309,
    "paid": 1559768309
  },
  "updated": 1593109734,
  "totalAmount": 1200000
}

The order should have generated a portal quota (yes?). The missing quota must be related to the incomplete related product definition.

csjx commented 4 years ago

There are 6 standard products inserted in the products table, and your order has a parent pointing to product id 11, so it depends on what product type id 11 is referring to, so maybe have a look at that.

gothub commented 4 years ago

@csjx In my test database, product 11 is "DataONE Hosted Repository", which has these features defined, which doesn't include quotaType of 'portal'. Should it?


{
   "features":[
      {
         "name":"trusted_data_repository",
         "label":"A Trusted Data Repository",
         "description":"Preserve and share your data, software, and derived products in a dedicated repository system. Built on our robust and expertly managed repository software and hardware, your research products are safely archived and easily accessible."
      },
      {
         "name":"individual_fair_Assessments",
         "label":"Individual FAIR Assessments",
         "description":"Evaluate your metadata with community established FAIR principles. Scores are refreshed with updates to your metadata, helping make your data even more Findable, Accessible, Interoperable, and Reusable."
      },
      {
         "name":"powerful_online_submission",
         "label":"Powerful Online Submission",
         "description":"The user friendly data submission tool helps your researchers efficiently upload and describe their data. Users can easily create detailed metadata to enhance interoperability, reusability, and value of data."
      },
      {
         "name":"comprehensive_search",
         "label":"Comprehensive Search",
         "description":"Quickly find data with detailed search filters, or by navigating the interactive map."
      },
      {
         "name":"usage_metrics",
         "label":"Usage Metrics",
         "description":"Understand how your data are being used over time with view, download, and citation metrics."
      },
      {
         "name":"usage_metrics",
         "label":"Usage Metrics",
         "description":"Understand how your data are being used over time with view, download, and citation metrics."
      },
      {
         "name":"expandable_storage",
         "label":"Expandable Storage",
         "description":"Grow your repository capacity based on your storage needs in 1 TB increments.",
         "quota":{
            "object":"quota",
            "quotaType":"repository_storage",
            "softLimit":1048576,
            "hardLimit":1153434,
            "unit":"portal"
         }
      },
      {
         "name":"geographic_replicas",
         "label":"Geographic Replicas",
         "description":"Your data are replicated to distinct geographic regions for high availability and preservation."
      },
      {
         "name":"api_access",
         "label":"API Access",
         "description":"Programmatically work with your repository through the DataONE tools in R, Python, Matlab, and Java."
      },
      {
         "name":"link_data_and_software",
         "label":"Link data and Software",
         "description":"Easily show how your files relate to each other by providing well-described provenance workflows."
      },
      {
         "name":"private_and_public_access",
         "label":"Private and Public Access",
         "description":"Control access to your datasets\nprior to publication with private groups or just yourself."
      },
      {
         "name":"private_and_public_access",
         "label":"Private and Public Access",
         "description":"Control access to your datasets\nprior to publication with private groups or just yourself."
      },
      {
         "name":"any_file_format",
         "label":"Any File Format",
         "description":"Use the scientific file formats for your community: image, tabular, text, audio, video, and others."
      },
      {
         "name":"share_when_ready",
         "label":"Share When Ready",
         "description":"Keep your dataset private while you document it thoroughly, and then make it public when you are ready."
      }
   ]
}
``
gothub commented 4 years ago

@csjx confirmed that the current product definitions are correct, so closing this issue.