metamask-mobile icon indicating copy to clipboard operation
metamask-mobile copied to clipboard

[Force upgrade] Define app config schema for GitHub pages endpoint

Open owencraston opened this issue 3 years ago • 2 comments

Description

  • builds off the work in this PR

  • define the schema for app config object that will host the minimum app version and potentially other things

  • I suggest we change the name of this file from minAppConfig.json to AppConfig.json or something that is more generic

  • other suggestions were to add a feature flag field

  • the current endpoint is https://metamask.github.io/metamask-mobile/minAppConfig.json

Acceptance Criteria

  • we can fetch the hosted json object and see all the fields

Process (adapt per story)

  • [ ] User research / data
  • [ ] Ideation / Kickoff in cross-functional team
  • [ ] Pattern research in mobile (crypto / non-crypto space)
  • [ ] Proof of concept to check technical feasibility (if applicable)
  • [ ] Design reviews with PM, Engineer(s)
  • [ ] User testing
  • [ ] Design - Dev handoff
  • [x] Implementation
  • [x] Code review
  • [ ] Stakeholder review on latest build on iOS and Android
  • [ ] QA - unit test, e2e tests, regression testing

owencraston avatar Aug 05 '22 16:08 owencraston

We could also consider using a GraphQl object to get better type support. This might be overkill since we would not benefit from the individual field fetching.

owencraston avatar Aug 05 '22 16:08 owencraston

This is my proposed schema

changed the file name to appConfig.json with the following schema

{
  "security": {
    "app_minimum_build": 700,
    "apple_minimum_os": 6,
    "android_minimum_api_level": 21
  },
  "featureFlags": []
}

@sethkfman what do you think?

owencraston avatar Aug 10 '22 17:08 owencraston

What you do think about adding a version? @owencraston

{
  "security": {
    "app_minimum_build": 700,
    "apple_minimum_os": 6,
    "android_minimum_api_level": 21
  },
  "featureFlags": [],
  "version": "x.x.x"
}

sethkfman avatar Aug 11 '22 22:08 sethkfman

for versioning I suggest we put them into folders like this

// metamask-mobile/AppConfig/v1/AppConfig.json
{
  "security":{
    "minimumVersions": {
      "appMinimumBuild": 700,
      "appleMinimumOS": 6,
      "androidMinimumAPIVersion": 21
    }
  }
}

owencraston avatar Aug 12 '22 18:08 owencraston