Internal executor for notification channel delivery attempts.
NiFi owns orchestration, rule decisions, template selection, retries, and audit callbacks. This service owns provider-specific send behavior behind a stable HTTP contract.
The first implementation is dry_run mode so the platform can validate the
end-to-end communication pipeline before provider credentials are added.
GET /healthzGET /readyzGET /openapi.jsonPOST /internal/notifications/:id/deliveries
Example delivery request:
{
"channel": "email",
"provider_key": "smtp:default",
"recipient": {
"type": "email",
"address": "person@example.com"
},
"message": {
"subject": "Deployment failed",
"text": "The production deployment failed during prod-deploy."
},
"options": {},
"metadata": {
"notification_request_id": "00000000-0000-0000-0000-000000000000"
}
}Dry-run response:
{
"ok": true,
"status": "sent",
"channel": "email",
"provider_key": "smtp:default",
"provider_message_id": "dry-run-00000000-0000-0000-0000-000000000000",
"response_json": {
"mode": "dry_run"
}
}Future provider implementations should plug into the same delivery request and return:
okstatuschannelprovider_keyprovider_message_idresponse_jsonerror_message
Provider credentials must be resolved from Vault at runtime. Do not commit provider tokens, SMTP passwords, SMS credentials, push keys, or webhook secrets.
Important environment variables:
EXECUTOR_MODE:dry_runorproviderINTERNAL_TOKEN_VAULT_PATHVAULT_ADDRVAULT_TOKEN_FILEREQUEST_TIMEOUT_MS
npm install
npm run build