department-of-veterans-affairs / va-mobile-app

"If VA were a company, it would have a flagship mobile app."
https://department-of-veterans-affairs.github.io/va-mobile-app/
17 stars 2 forks source link

CU - Add OS version, device model and app version number to header on every api request #8661

Closed TKDickson closed 1 month ago

TKDickson commented 6 months ago

Proposed Change

Adding OS version to the request parameters will enable us to (eventually/functionality doesn't exist currently) be able to use OS version to target specific users (for something like customized BE error messages, or being able to block users with a specific OS version from using the app (ex: RN no longer supports [Android Z/iOS Y], those users will just experience app crash if they log in)). Backend has also been having trouble debugging issues that may or may not be caused by certain app versions.

We currently do send platform (Android/iOS) and app build number (this is reused for multiple app version. ex 1316), but not app version.

  1. OS version (EX: IOS 17.xx)
  2. Device model (EX: Iphone 15)
  3. App version number (separate from build number. EX: 2.28.0)

Acceptance Criteria

Coding Time Estimation

Testing Considerations

Checklist

timwright12 commented 3 months ago

Can someone add acceptance criteria to this ticket?

TKDickson commented 3 months ago

@timwright12 I will scoot this back to the pending handoff column for ACs to be added

TKDickson commented 2 months ago

Confirmation from backend that we can pick whatever we want for naming:

as for what they'll be called, We'll be hooking into it after it's put in the request so whatever you decide to call it we'll adapt our code to. Initially it'll just be used for datadog queries but eventually we may want to change behavior due to the app build if there's a bug in only one build.

TKDickson commented 2 months ago

Old request (example):

GET /mobile/v0/letters/beneficiary HTTP/1.1
Host: staging-api.va.gov
x-key-inflection: camel
authentication-method: SIS
User-Agent: VAMobile/2117 CFNetwork/1498.700.2 Darwin/23.6.0
Connection: keep-alive
Accept: */*
Accept-Language: en-US,en;q=0.9
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJ2YS5nb3Ygc2lnbiBpbiIsImF1ZCI6WyJ2YW1vYmlsZSIsInZhd2ViIiwic2FtcGxlX2NsaWVudF93ZWIiXSwiY2xpZW50X2lkIjoidmFtb2JpbGUiLCJqdGkiOiJjNjk2ODI0YS0xYjcyLTRjMzktYmNmNS05MDlhZTk1NGMyOTMiLCJzdWIiOiIxMzA2ZTMxMjczNjA0ZGQ0YTEyYWE2NzYwOWE2M2JmZSIsImV4cCI6MTcyNjUxNDY5OCwiaWF0IjoxNzI2NTEyODk4LCJzZXNzaW9uX2hhbmRsZSI6IjNiMjNmNmU3LTczMWQtNDdhNi1hMjJhLTMyNDA3YTRkYzI3ZCIsInJlZnJlc2hfdG9rZW5faGFzaCI6ImEwN2E3MzYwNDk4MTdlMDAzMDg3YmI3OGUyYzM3YjFhMjQ3ZTgzMDg4NGZjNGI4MDZkZTJmNjQ5ZTBjZWM5YzciLCJkZXZpY2Vfc2VjcmV0X2hhc2giOm51bGwsInBhcmVudF9yZWZyZXNoX3Rva2VuX2hhc2giOiI5MzlmZGE3ODJjZGFjZGE4MjkzNTE1ZDVhM2JlMGM1OGMzYjNiZTI2YjRmYjI1NTJjNWE4Nzg4YjAwMjI2NDgwIiwiYW50aV9jc3JmX3Rva2VuIjoiZGFiMzUzNjkzYTk2ZmIzYzhmM2UxYWE4ZmIxYTdlYzciLCJsYXN0X3JlZ2VuZXJhdGlvbl90aW1lIjoxNzI2NTEyODk4LCJ2ZXJzaW9uIjoiVjAiLCJ1c2VyX2F0dHJpYnV0ZXMiOnt9fQ.QxQmA0e7iJ5noKBvxrF6gFbEmhwpww70JkNbo3hvAKeZBBSpHF0YMhFP34Abi96f5jqtu4SBgh-XMVydizaTt3GwWqU9eLGNZz04BNJYLyLnwlyT05AkFlRCcJdUYSwwmBOJ9izZm8ENwbyXmC25Smumquo8Lvg5Dlvw_kmV463Td3812ZlvaI-I1jrQMkYzd0PkkT9kJKmqm14_GKLwxjkreoEu4myMVNhu5cfUqqtzBTIQrp_f8edoslHV0qH7OcywwhQaxHb3ovZuYzNzB_-gfID-oaXpsvtZWKKJH-7u6fTF5zrTlZKIJ05AjhyVAmHflnf1wqWBqHu7zluPbQ
source-app-name: va-health-benefits-app
Accept-Encoding: gzip, deflate, br

New request example:

GET /mobile/v1/messaging/health/messages/3944610/thread?excludeProvidedMessage=true?useCache=false HTTP/1.1
Host: staging-api.va.gov
Accept: */*
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJ2YS5nb3Ygc2lnbiBpbiIsImF1ZCI6WyJ2YW1vYmlsZSIsInZhd2ViIiwic2FtcGxlX2NsaWVudF93ZWIiXSwiY2xpZW50X2lkIjoidmFtb2JpbGUiLCJqdGkiOiJiOGI3YmRjOC02NWE4LTQ4OWQtYjFlYy05ODA4MTJmZWY1MjQiLCJzdWIiOiIxMzA2ZTMxMjczNjA0ZGQ0YTEyYWE2NzYwOWE2M2JmZSIsImV4cCI6MTcyNjUyMjI5MCwiaWF0IjoxNzI2NTIwNDkwLCJzZXNzaW9uX2hhbmRsZSI6IjljNWFjOTNjLTg2NmUtNDY2Mi1iOGM4LWM2NDY0MzZmOTMyZiIsInJlZnJlc2hfdG9rZW5faGFzaCI6IjNkMzM5YmQ2YjY3ZDgyYzg3ZjA0OGRkZGFkNTJmNTljZWMyYzY1NGRmMTRjYmM4MjdiMmZkYjY2NDkzZTBkNjciLCJkZXZpY2Vfc2VjcmV0X2hhc2giOm51bGwsInBhcmVudF9yZWZyZXNoX3Rva2VuX2hhc2giOiJmYTg2ZDNkOGRlNzZjZGQyYmQ3YWVhOGExYTk2Y2M4ZGU0ZGQyYWQ0NWE3ZTUxYjE1NWM3MWQ3MzM4NzFmYTFkIiwiYW50aV9jc3JmX3Rva2VuIjoiNjAyYjVlYmIzYjVjY2RjOWE1NWZlMDFkZmU4MmQ4YzMiLCJsYXN0X3JlZ2VuZXJhdGlvbl90aW1lIjoxNzI2NTIwNDkwLCJ2ZXJzaW9uIjoiVjAiLCJ1c2VyX2F0dHJpYnV0ZXMiOnt9fQ.RBHviOIZOhsUagjDXTalyxfUW6h5earX7kxT9NxiSQ27Ps9dgmRrLdzQrkbBXgtJzd0T5ihO0KuPZNKmeyquIHbuQTp2FqBugRtiZnDfIPYxtXYIgT0qPLToQkok1aWOyw_KDzjVXbrE719HcqLDABONbu6fST54UJ-oB3Y8JbIWA4fiF6XbHwX7m4zbq2jBVQpW-T6GPkLn_n-GNQsB-AampOnw57sEXIs60I1oQQspFK-a1t7Fs2vBAY7IS9yvPH1A3_NnwEKsd02oa9f3THufeXqFu_J335i-gBBkjG_wz2w3_qKDcWvvDipkoZ2YZo_dDckQ3xlGjkMNDEDFPg
app-version: 2.36.1.QA
authentication-method: SIS
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
x-key-inflection: camel
device-model: iPhone
User-Agent: VAMobile/2131 CFNetwork/1498.700.2 Darwin/23.6.0
Connection: keep-alive
os-version: iOS 17.6.1
source-app-name: va-health-benefits-app
TKDickson commented 1 month ago

@aherzberg this will be live on October 8th, FYI. Closing.