The validator checks file formats before importing data into the database. There is a wrapper script metaImport.py that validates the data and subsequently calls the relevant Java classes to import the data.
The session service is used for storing user saved data such as virtual studies and groups. See the tutorials section to read more about these features. Session service is a Java app that serves a REST API backed by a Mongo database. The session service is served as a proxy through the cBioPortal backend REST API. The backend is therefore the only component that needs to be able to connect to it. The frontend does not connect to it directly.
The frontend is a single page app built with React, Mobx and Bootstrap. The data gets pulled from the backend REST API. The frontend is by default included with the backend so no extra setup is required.
cBioPortal uses the APIs from several external services to provide more information about a variant:
OncoKB is a precision oncology knowledge base that contains information about the effects and treatment implications of specific cancer gene alterations. See the section OncoKB Data Access for how to configure external OncoKB service.
CIVIC is a community-edited forum for discussion and interpretation of peer-reviewed publications pertaining to the clinical relevance of variants (or biomarker alterations) in cancer. For information on how to deploy this service yourself see: https://github.com/griffithlab/civic-server. It is also possible to disable showing CIVIC in cBioPortal by setting show.civic=false in the portal.properties (See portal.properties reference).
cBioPortal calls these services with variant information from the cBioPortal database. It however does not send over information that links a variant to a particular sample or patient. If this is a concern for your use case we recommmend to deploy your own versions of these services. See the sections above to linkouts for instructions on how to do this.