Ticket #322 (closed enhancement: fixed)
Client interface for Notification Service
Reported by: | dread | Owned by: | dread |
---|---|---|---|
Priority: | blocker | Milestone: | v1.1 |
Component: | ckan | Keywords: | |
Cc: | Repository: | ||
Theme: |
Description (last modified by dread) (diff)
Use cases
- Register for package changes
- Register for all revisions
- Notified of a package change
- Notified of a revision
- Deregistration
- Configuration of port in pylons config
Design
- Default port: 5672 (standard for AMQP)
- Exchange name: 'ckan'
- Exchange type: topic exchange (most flexible)
- Routing keys: (see below)
Routing detail
Routing key format: "OBJ_TYPE" (NB tags should be identified by their name, not ID)
Example routing keys
- 'package' - Package edited/created
- 'resource' - Resource edited/created
- 'revision' - Any change
- 'db.clean'
- 'db.rebuild'
Example queue bindings that clients may use:
- * - no filtering - client receives all notifications
- package - only changes to packages
- revision - all revisions
- db - all database operations
Versioning
Since message payloads will be tied into the REST Entities, it makes sense to join up with the REST versioning. This could be achieved by providing new exchanges called 'ckan-1.1' perhaps?
Documentation
- How to use
- simple example of an external client?
Change History
comment:2 follow-up: ↓ 3 Changed 4 years ago by pudo
This looks very reasonable. Maybe we should have a webhooks client as a simple demo for this?
Note: See
TracTickets for help on using
tickets.