Service Portal


The service portal is the user personal pages where it will be able to find all the information relative to itself, family, finances, applications and so on.


Getting started

Before running the service portal, you will need to setup the user-profile service. Follow these steps first.
You might need to setup x-road service.
sh ./scripts/
You can then proceed and start the GraphQL API and the service portal:
yarn start service-portal


Start by reading about the portal module system.

Adding a module to the service portal

To add a new module to the service-portal, import and add it to the list defined in modules.ts:
// other imports...
import { myNewModule } from ''
export const modules: PortalModule[] = [
// other modules...

Declaring routes in the service portal

Declaring a new route for the service portal involves a few steps:
  • Declare a path for the route
  • Declare a route in the master navigation
  • Implement the route based on the user's authorization scope and return it so it gets rendered into the navigation.

Declaring a path for a library

All Service Portal paths are declared as an enum in paths.ts

Declare a route in the master navigation

The master navigation is defined in the service portal core in masterNavigation.ts Navigation items are defined as such:
export interface PortalNavigationItem {
name: MessageDescriptor | string
path?: ServicePortalPath
external?: boolean
// System routes are always rendered in the navigation
systemRoute?: boolean
icon?: Pick<IconProps, 'icon' | 'type'>
children?: PortalNavigationItem[]

Implement the route

Each module implements its own routes (see above). Routes should only be returned if available to the session scope. Items will be rendered into the navigation if a route has been declared for it.


A sentry project is available here.

Code owners and maintainers