For the complete documentation index, see llms.txt. This page is also available as Markdown.

Events

How to configure life events

This is technical documentation. For the functional overview of events, see Events

An event is a life event your country registers in OpenCRVS (for example birth or death). You configure each event in your country config repository under src/events/, then expose all event configs to the core via a single API handler.

The core fetches the event configurations from the country config server via a predefined HTTP endpoint. This means you can, for example, implement custom logic for defining your configs — as long as the endpoint exists and returns a valid array of event configurations.

File layout

In a typical country config (see opencrvs-countryconfig):

Path
Purpose

src/events/<event>/index.ts

Event definition (defineConfig)

src/events/<event>/forms/

Declaration, review, print, and correction forms

src/events/index.ts

Aggregates all events into eventConfigs

src/api/events/handler.ts

Returns eventConfigs to the OpenCRVS client

Define an event

Wrap each event in the defineConfig() helper.

Example:

// src/events/birth/index.ts
import { ActionType, defineConfig, field } from '@opencrvs/toolkit/events'
import { birthDeclarationForm } from './forms/declaration'

export const birthEvent = defineConfig({
  id: 'birth',
  label: {
    defaultMessage: 'Birth',
    description: 'This is what this event is referred as in the system',
    id: 'event.birth.label'
  },
  declaration: birthDeclarationForm,
  dateOfEvent: field('child.dob'),
  // title, summary, actions, flags, ...
})

Register events with the API

First, export every event from src/events/index.ts, then return that array from your events handler:

Then, import and use them in the getEventsHandler():

The advancedSearch property defines the tabs and searchable fields shown on the advanced search page for an event. See Advanced search for the helper reference.

Deduplication

The deduplication property on the declare and register actions defines a query used to flag potential duplicate records on submission. See Deduplication for the helper reference.

EventConfig schema

Last updated