- Channel: Broad category (e.g.,
posts) - Topic: Subcategory or specific resource (e.g.,
post_id_123,any, ornone) - Event: What happened (e.g.,
new_comment)
You can send any target out of the box. Giving a target a project-level preference — cataloging it — is what puts it on your recipients’ settings screen so they can mute it. Once your catalog is stable you can turn on strict targets and an uncataloged target becomes a
400 instead.any and none have special meaning:
anymeans all topics under this channel/event.nonemeans only the base channel/event.anyis not a validtopicwhen sending a notification, but both are valid for preferences.
posts:any:new_comment will match a notification with target posts:post_id_123:new_comment, but a preference with the target posts:none:new_comment will only match a notification with target posts:none:new_comment.
This applies to strict targets too, which is what makes per-resource targets practical: catalog posts:any:new_comment once and every posts:post_id_123:new_comment you send passes, however many post ids there turn out to be. One entry per post id is never the answer.