Skip to content

[HOLD for payment 2024-07-22] [HOLD for payment 2024-07-17] [$250] [Performance] [MEDIUM] Add "Export Onyx state" option to Troubleshoot menu and four finger tap #43097

Closed

Description

@muttmuure

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


What performance issue do we need to solve?

e.g. memory consumption, storage read/write times, React native bridge concerns, inefficient React component rendering, etc.

When your mobile client's Onyx state falls out of sync with web, it is hard to diagnose which value has been missed or has been incorrectly inserted, especially when a refresh, sign in, or reload of the app on the client can solve the issue.

What is the impact of this on end-users?

List specific user experiences that will be improved by solving this problem e.g. app boot time, time to for some interaction to complete, etc.

This is more of a debugging tool, since Onyx impacts on pretty much everything you see in app, it can impact on a multitude of end user functionality.

The most important end user impact of a debugging tool which exports the Onyx state is around privacy. We need to sanitize the authToken, emails and messages of the data since those are private and shouldn't be shared with anyone.

List any benchmarks that show the severity of the issue

Please also provide exact steps taken to collect metrics above if any so we can independently verify the results.

This is more of a debugging tool, so this isn't something that will show benchmarks.

Proposed solution (if any)

Please list out the steps you think we should take to solve this issue.

Add a "Export Onyx State" option to the Troubleshoot menu.

This downloads the values in the Onyx keyvaluepairs table to a txt file.
The authTokens, emails and messages in the file are redacted

List any benchmarks after implementing the changes to show impacts of the proposed solution (if any)

Note: These should be the same as the benchmarks collected before any changes.

Platforms:

Which of our officially supported platforms is this issue occurring on?

  • Android: Native
  • Android: mWeb Chrome
  • iOS: Native
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Version Number:
Reproducible in staging?:
Reproducible in production?:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
Issue reported by:
Slack conversation:

View all open jobs on Upwork

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~014fd561267f73f88e
  • Upwork Job ID: 1803048668106098615
  • Last Price Increase: 2024-06-18
Issue OwnerCurrent Issue Owner: @muttmuure

Activity

  1. melvin-bot commented on Jun 5, 2024

    @melvin-bot

    Auto-assigning issues to engineers is no longer supported. If you think this issue should receive engineering attention, please raise it in #whatsnext.

  2. melvin-bot commented on Jun 10, 2024

    @melvin-bot

    Huh... This is 4 days overdue. Who can take care of this?

  3. burczu commented on Jun 11, 2024

    @burczu
    Contributor

    Hi, I am Bartek from Callstack - expert contributor group. I would like to work on this issue.

  4. burczu commented on Jun 12, 2024

    @burczu
    Contributor

    Daily update: I’ve been working on the proposal for this issue today, mostly on finding the way to collect the whole onyx snapshot as a string (to be able to save it as a txt file later), I hope I’ll be able to post something by the end of tomorrow - I’ll keep you posted. I’ve also created a draft PR in GH.

  5. burczu commented on Jun 13, 2024

    @burczu
    Contributor

    Daily update: I think I’ve found the way to collect all the Onyx data for web environment and already tested it; for native I think I’ve also find the way but it still needs testing. I believe the proposal is behind the corner and I’ll be able to post it tomorrow.

  6. burczu commented on Jun 14, 2024

    @burczu
    Contributor

    Daily update: the solution for collecting the Onyx data and saving as a text file is done and can be checked in the draft PR. I've forgotten that we also need to mask data such as authToken, emails etc, so this is the last thing I need to sort out.

  7. melvin-bot commented on Jun 17, 2024

    @melvin-bot

    @burczu Whoops! This issue is 2 days overdue. Let's get this updated quick!

  8. 44 remaining items

  9. ZhenjaHorbach commented on Jul 22, 2024

    @ZhenjaHorbach
    Contributor

    Not overdue
    Waiting for payment !

  10. melvin-bot commented on Jul 22, 2024

    @melvin-bot

    Payment Summary

    Upwork Job

    • Contributor: @burczu is from an agency-contributor and not due payment
    • ROLE: @ZhenjaHorbach paid $(AMOUNT) via Upwork (LINK)

    BugZero Checklist (@muttmuure)

    • I have verified the correct assignees and roles are listed above and updated the neccesary manual offers
    • I have verified that there are no duplicate or incorrect contracts on Upwork for this job (https://www.upwork.com/ab/applicants/1803048668106098615/hired)
    • I have paid out the Upwork contracts or cancelled the ones that are incorrect
    • I have verified the payment summary above is correct
  11. melvin-bot commented on Jul 23, 2024

    @melvin-bot

    @burczu, @muttmuure, @ZhenjaHorbach, @hayata-suenaga 6 days overdue. This is scarier than being forced to listen to Vogon poetry!

  12. muttmuure commented on Jul 25, 2024

    @muttmuure
    ContributorAuthor

    Handling

  13. muttmuure commented on Jul 25, 2024

    @muttmuure
    ContributorAuthor
  14. ZhenjaHorbach commented on Jul 25, 2024

    @ZhenjaHorbach
    Contributor

    Invited @ZhenjaHorbach

    Done !

  15. Christinadobrzyn commented on Jul 25, 2024

    @Christinadobrzyn
    Contributor

    hey I have this GH #44841 that's also ready for payment.

    The PRs are different but is this the same job? I've already paid out @etCoderDysto in this GH for this PR.

    Should we pay @ZhenjaHorbach once for both jobs or are these separate jobs?

    @burczu @hayata-suenaga

  16. hayata-suenaga commented on Jul 26, 2024

    @hayata-suenaga
    Contributor
  17. muttmuure commented on Jul 29, 2024

    @muttmuure
    ContributorAuthor

    It should be one payment since this was the original issue and the linked issue is a follow-up/polish issue caught in testing

  18. muttmuure commented on Jul 29, 2024

    @muttmuure
    ContributorAuthor

    Paid

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2EngineeringExternalAdded to denote the issue can be worked on by a contributorHelp WantedApply this label when an issue is open to proposals by contributors

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions