Integrate with an endpoint which provides a list of Safe Apps to be shown.
GET /api/v1/safe-apps a list of safe apps is returned.// collection of safe apps
[
{
"url": <string>,
"name": <string>,
"iconUrl": <string>,
"description": <string>,
"chainIds": [<uint>],
"provider": { // optional
"url": <string>,
"name": <string>
}
}
]
GET /api/v1/safe-apps?network_id=2 returns a list of safe-apps which are available on network 2.If the server responds with an error, show a Snackbar saying "Error fetching the Safe Apps, please refresh the page".
Some notes from the grooming:
icon_url is currently using camel case.
Current list is https://github.com/gnosis/safe-apps-list/blob/main/public/gnosis-default.applist.json
icon_urlis currently using camel case.
I think camel case is more in line with what we have in the other services so I'd change it on the service side. I'll sync with the Backend team regarding format.
Current list is https://github.com/gnosis/safe-apps-list/blob/main/public/gnosis-default.applist.json
icon_urlis currently using camel case.I think camel case is more in line with what we have in the other services so I'd change it on the service side. I'll sync with the Backend team regarding format.
Created ticket to tackle this here: https://github.com/gnosis/safe-config-service/issues/64
@fmrsabino says it's deployed and you can ping him if needed.
Swagger for the service is now available under: https://safe-config.staging.gnosisdev.com
@katspaugh @juampibermani Small proposal for key change: networks would become chainIDs.
Reason is that the apps are published on a specific chain_id which might be the same as network_id. Eg.: Both Ethereum Classic and Ethereum share the same network_id (1) but have different chain_ids. In the context of where a safe-app is published, being published on Ethereum does not mean that it's published on Ethereum Classic (if we read it as network_id).
Thoughts?
A list of networks/chains is available here: https://chainid.network
Makes sense 馃憤
Created ticket here: https://github.com/gnosis/safe-config-service/issues/77 and updated the spec of the ticket https://github.com/gnosis/safe-react/issues/2282#issue-886615946
@katspaugh @juampibermani Change was merged: https://github.com/gnosis/safe-config-service/pull/78
And it's already deployed so you can test it on staging! 馃憤
Once you add a custom app, all the apps are saved to the localStorage.
@mikheevm why is it a bad thing per se?

@katspaugh
The app gets duplicated if the URL changes, I've seen safes where there were 3 cards for the same app. Also, in my opinion, it doesn't make sense to store remote data on the client
@fmrsabino says we shouldn't merge this for now because the service isn't deployed to prod.
@fmrsabino says we shouldn't merge this for now because the service isn't deployed to prod.
Service is now deployed to production: https://safe-config.gnosis.io/
@francovenica please let me or @fmrsabino know if you need access to the Django admin for testing.
There is the link on the prepared test cases for the external list ( https://gno.testrail.io/index.php?/suites/view/40&group_by=cases:section_id&group_id=3488&group_order=asc&display_deleted_cases=0 - External Safe Apps list section) .
I will be really appreciated if you check it , provide feedback and answer on the opened questions
@dasanra , @katspaugh , @tschubotz , @fmrsabino and @francovenica
Open questions mainly about the safe app URL validation
The feature is reopened , as there are the issue in the linked PR
Most helpful comment
Swagger for the service is now available under: https://safe-config.staging.gnosisdev.com