Plan Service
Overview
The Plan Service manages plan configuration and microplans. It supports create/update/search flows, validations, and workflow-driven processing.
It can run standalone for microplanning. It can also integrate with HCM Console for campaign execution, monitoring, and reporting.
For deeper design context (APIs, diagrams, and schemas), see Microplan - Low Level Design.
Prerequisites
Spring Boot
Git (or another version control system)
REST APIs
Kafka
PostgreSQL
MDMS and Persister familiarity (helpful)
Capabilities
Data upload and configuration
Upload population, facility, and census inputs (for example
.xlsx, Shapefiles, GeoJSON).Configure assumptions for estimation (demographics, constraints, availability).
Configure formulas to compute HR, commodities, and budgets.
Activity and resource planning
Manage activity sequences and dependencies.
Estimate and persist required resources per activity.
Track prerequisites for activities.
Define targets and track progress.
Generate microplan outputs (save/print/export).
Assignments
Assign employees to hierarchy levels (Province/District/Village).
Map jurisdictions for clear geographic responsibility.
Associate facilities to plans, including catchments and boundary metadata.
Dependencies
MDMS service
Persister service
Census service
Facility service
Project Factory
User service
Workflow service
API
Base path:
Swagger:
Postman collection:
Data model and flow diagrams



Kafka topics
Producer topics
plan-config-create-topic
Create plan configuration with assumptions, operations, and uploaded files
plan-config-update-topic
Update a plan configuration
save-plan
Create a microplan for a locality with provided resources, activities, or targets
update-plan
Update a microplan
Consumer topics
resource-microplan-create-topic
Trigger microplan creation after resource estimation
resource-plan-config-update-topic
Update plan configuration from Resource Generator service
Deployment and configuration
Persister config: plan-service-persister.yml
Helm chart: health-services/plan-service
Access control (roles and role-actions)
Create role
MICROPLAN_ADMINin theACCESSCONTROL-ROLESMDMS module.Map action IDs to role codes in the
ACCESSCONTROL-ROLEACTIONSMDMS module.
The mappings below are from a Dev environment setup. Treat them as a baseline.
Plan APIs
/plan-service/plan/_create
SYSTEM
/plan-service/plan/_search
ROOT_RESOURCE_ESTIMATION_APPROVER, RESOURCE_ESTIMATION_APPROVER
/plan-service/plan/_update
ROOT_RESOURCE_ESTIMATION_APPROVER, RESOURCE_ESTIMATION_APPROVER
/plan-service/plan/bulk/_update
ROOT_RESOURCE_ESTIMATION_APPROVER, RESOURCE_ESTIMATION_APPROVER
Plan configuration APIs
/plan-service/config/_create
MICROPLAN_ADMIN
/plan-service/config/_search
MICROPLAN_ADMIN
/plan-service/config/_update
MICROPLAN_ADMIN
Plan facility catchment APIs
/plan-service/facility/_create
SYSTEM
/plan-service/facility/_search
ROOT_FACILITY_CATCHMENT_MAPPER, FACILITY_CATCHMENT_MAPPER
/plan-service/facility/_update
ROOT_FACILITY_CATCHMENT_MAPPER, FACILITY_CATCHMENT_MAPPER
Plan employee assignment APIs
/plan-service/employee/_create
MICROPLAN_ADMIN
/plan-service/employee/_search
MICROPLAN_ADMIN
/plan-service/employee/_update
MICROPLAN_ADMIN
Environment variables
Configure environment values in your DIGIT DevOps environment YAMLs (search for plan-service):
Common values to review:
db-host,db-name,db-url,domainCore platform service configs (for example - persister, filestore)
DB secrets (Postgres + Flyway) in the environment secrets file
DIGIT core service secrets in the environment secrets file
Localisation sheet:
MDMS
Align Plan Service MDMS with a known-good environment (for example - QA). Typical masters:
UOM config
Metric config
Hypothesis assumptions config
Input rules config
Output rules config
Campaign-based schema
Microplan status config
Map layers config
Map filters config
Preview aggregates config
UI configs
Upload config
Reference dataset:
Reference docs
Last updated
Was this helpful?