biothings / biothings_explorer

TRAPI service for BioThings Explorer

Home Page:https://api.bte.ncats.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TRAPI 1.5: update SmartAPI yamls for BTE + Service Provider

colleenXu opened this issue · comments

The SmartAPI yamls for BTE + Service Provider are based on the TRAPI spec, so they'll need updating to TRAPI 1.5.

Let's wait until we've implemented the major + other minor features of TRAPI 1.5 in Dev/CI, then:

  • translator-api-registry repo: make branch/PR with updated SmartAPI yamls + dev/CI server urls. Remove dev/CI server urls from master branch yamls.
  • SmartAPI registry: register those yamls as separate, temporary registrations
  • BTE:
    • copy BTE's updated yaml into bte-server (branch w/ TRAPI 1.5 features)
    • add smartapi exclusions for the temporary registrations

EDIT: did this additional piece - reviewing / addressing-if-still-relevant the old questions and comments from TRAPI 1.4 issue

First step of creating the updated yamls is done in branch NCATS-Tangerine/translator-api-registry#149. It also changes BTE's workflow operation to lookup_and_score for #485

We'll do the next steps (including removing dev/CI server urls from the master ranch yamls) when we're ready to advertise that we do TRAPI 1.5 for dev/CI instances.

To address the old questions/comments, I made minor changes to the current yamls (commit) and yamls on this branch (merge):

  • adjusted BTE yaml's servers comments, added short explanation of how test/prod instances are updated
  • BTE-specific parameters:
    • removed caching (replaced with TRAPI bypass_cache property?)
    • commented out dryrun - needs testing to see if it's still working
  • add asyncquery_response endpoint (feature PR)

Small, not-important question for Jackson @tokebe:

It's not clear to me if log_level for asyncquery_response (and other endpoints like asyncquery_status?) is one of our custom request parameters or not.

If it's a custom request parameter, I could add it to our tool's yamls if I know what endpoints it works for / how it behaves. There seems to be some info in that PR

Yes, we have a custom url query parameter that mimics the TRAPI-spec log_level behavior on /v1/asynquery_status and /v1/asyncquery_response.

The tasks above are complete:

  • dev/ci instances urls are now advertised in the new, temporary TRAPI 1.5.0-beta registrations (BTE, Service Provider). They use the branch PR yamls
  • prod/test instance urls are still in the main TRAPI 1.4.2 registrations (BTE, Service Provider). They use the master branch yamls
  • BTE dev/ci is updated (PR):
    • using TRAPI 1.5.0-beta yaml as its local copy (has all instance yamls so it doesn't need to be updated later!)
    • smartapi exclusions: add the temporary registrations

View in ARAX-UI's "SmartAPI info" tab (left column menu):

Screen Shot 2024-04-12 at 2 35 07 PM

Screen Shot 2024-04-12 at 2 35 16 PM


Next steps: As TRAPI 1.5 is deployed to test/prod, we'll adjust the yamls/registrations.

I've also updated the BTE/Service Provider yamls to add the log_level parameter (master branch, yamls on this branch).

So I'm done following up on the old questions/comments. Yay!

TRAPI 1.5 and other features were deployed to Test yesterday.

So I've updated the yamls/registrations, moving the test instances to the temporary TRAPI 1.5 registrations (BTE, Service Provider). They use the branch PR yamls.

I also changed the TRAPI version we advertise from "1.5.0-beta" -> "1.5.0".

View in ARAX-UI's "SmartAPI info" tab (left column menu):

Screen Shot 2024-05-09 at 12 45 57 PM

Screen Shot 2024-05-09 at 12 46 04 PM

Notes on next steps

We may need to update the TRAPI 1.5 yamls when TRAPI 1.5 final (not beta) is released which should be at the end of this current sprint (Translator Slack link).

When TRAPI 1.5 is released in Prod:

  • registry:
    • add Prod instance to TRAPI 1.5 yamls, then merge this PR -> this updates the original registrations to TRAPI 1.5
    • delete the temp registrations, refresh the original registrations
  • bte-server: not sure if this needs to be a hot-fix or not
    • remove the temp registrations from config/smartapi_exclusions.yaml
    • update the local docs/smartapi.yaml (at least will update the TRAPI version from 1.5.0-beta to 1.5.0)

Update

TRAPI 1.5.0 final was released today. I've updated the TRAPI 1.5 yamls with its minor updates (compare to TRAPI 1.5.0-beta). And refreshed the temporary registrations using these yamls.

I've also updated the local docs/smartapi.yaml but I'm not sure if it's been deployed to CI.

Update: sprint 2/Octopus has deployed to Prod.

The registry updates are done and the chore issue's been updated with removing the SmartAPI exclusions

  • added prod instance urls to NCATS-Tangerine/translator-api-registry#149, then merged this PR -> this updates the original registrations to TRAPI 1.5
  • deleted the temp registrations, refreshed the original registrations

However, we have an update to the bte-server local copy (see previous comment). I've double-checked, and it's only been deployed on CI right now.

There's also potential changes to this local copy, if we update the biolink-model version. I'd also like to do a cosmetic edit ("1.5.0" -> 1.5.0 for x-trapi.version) (also noted in #788 (comment))