Every app can report to the same place
2026年6月15日
notify posts a message to a central hub: one URL, one secret header, one function call. Without a [notify] section in the credentials it does nothing at all.
That last sentence is the design. An app should be able to say something happened without knowing whether anyone is listening. A failed nightly import, a payment that did not settle, a customer signing up: those are worth a message on the machine that runs them and worth a message centrally, and no app should carry two code paths for it.
So the call is unconditional and the configuration decides. A development machine has no [notify] section and the function is a no-op, so there is no guard to write and no test double to arrange. Add the section on production and the same line starts reporting.
The hub on the other end is the Phlo Dashboard, which already collects errors, metrics and backup status from every node. Notifications join that feed, which means one place to look rather than one per application. For a fleet of a dozen small apps, that is the difference between noticing something and not.
The wider pattern is worth naming because it recurs across the platform: a resource that degrades to silence rather than to an error. Billing without keys offers no billing, an AI engine without a key is simply unavailable, and an app with no hub configured reports to nobody.
Engine 1.0. See notify in the manual.