FeatureCloud App Store: Publish your applications

Once Developers implement their app and successfully test it, they can make it available to the FeatureCloud community. For facilitating app publication and access for developers and end-users, respectively, FC provides the app store, where apps are categorized, reviewed, and certified. It is worth mentioning that app certification is an important process in FC that concerns privacy issues, which we cover in another story. In this story, we will cover how end-users can easily find the proper app for their usage and be assured about the quality and privacy concerns. Moreover, we talk about how app developers can publish their apps in the app store.

App store

FeatureCloud platform presents an app store for the FC community, where developers can publish their apps and make them available for different hospitals, institutes, etc. currently, app store supports apps and workflow as products that are available for end-users. Apps are generally categorized into the following categories:

  1. Pre-processing: All the apps which are focused on preparing data for analysis apps fall in this category; Pre-processing apps are commonly used as the first apps in FC workflow. It includes apps concerned with loading, splitting, and distributing data: e.g., Cross-Validation, Data distributor, etc. Also, normalization apps will be found under this category.
  2. Analysis: Federated machine learning and data analysis apps are categorized as analysis apps. Analysis apps are the leading apps that end-users use in a workflow to collaborate, therefore, they have global aggregation at some point. Besides machine learning apps like Deep Learning and Random-forest apps, end-users can also find specific federated data analysis apps like sPLINK and Flimma under analysis apps.
  3. Evaluation: At the end of a workflow, once the results of analysis apps are available, evaluation apps can be used for calculating some criteria based on the results and ground truth, if it’s available. Also, visualization apps, like evaluation(Classif.), fall under this category, which is responsible for providing plots for end-users to have a better understanding of the outcome.

Privacy consideration

Even though Federated learning is a way to tackle privacy challenges, there can be more considerations to provide a better level of privacy awareness or preservation in federated apps. For that purpose, FeatureCloud provides privacy-preserving mechanisms like Secure Multi-Party Computation (SMPC), which apps can leverage to enhance their privacy. For end-users, there is a privacy technique panel to filter apps that employ specific privacy-preserving techniques:

  • Federated computation: All apps that refrain from moving any data to centralized custody by using federated computation will be found in this privacy-preserving category.
  • Differential privacy
  • Secure Multi-party Computation

App utility

For some tasks, FeatureCloud end-users may have multiple apps they can utilize, and a review and scoring mechanism is to guide them. FC users can review every app to point out the strong and weak sides of the app. In addition, end-users can rate apps from one to five stars. End-users can choose between alternative apps based on the reviews and rates. Meanwhile, not all apps in the app store are certified by the FeatureCloud certification process; if some users want to use such apps, they can be found in the app store by marking show uncertified apps box. End-users can use uncertified apps based on their own risk.

App Details

Each app in FC app store has a dedicated page on featurecloud.ai to provide information that will be provided by app developers, end-users, and the FC certification team. The page is editable for developers where they should give a name, description, link to a public GitHub repository containing the implementation, tags to express the application of the app, and docker image-name, which will be used to pull the app from FC docker repo. The app page includes review and statistic tabs.

Publishing apps in FeatureCloud

For publishing apps in the app store, developers should signup to feature

Pushing the app’s docker image to the FC docker repository

For creating credentials, one needs to signup to docker hub, and then you can use the same credentials to log in in your terminal:

$ docker login

username: user@mailserver.domain

password: ******************

Login into FeatureCloud docker repository

$ docker login featurecloud.ai

username: username@mailserver.domain

password: **************to

Now, you are logged in and can push your app into the FC docker repository:

$ featurecloud app publish [OPTIONS] NAME [TAG] 

Where NAME is the image name, and TAG is the image versioning tag, bey default: ‘latest’. For example:

$ featurecloud app publish featurecloud.ai/my-app:latest

Beware that the same image-name that is you defined for your app in the app detail page should be used here. Therefore, to push to the FeatureCloud repository, it should include featurecloud.ai/ as prefix.

Later, to make sure the app is in the repository, one can download it using the CLI:

$ featurecloud app download featurecloud.ai/my-app:latest

--

--