Skip to content

Push notifications (RFC 8620 §7) #16

Description

@SashankBhamidi

The client polls for changes via get_sync_token. JMAP push subscriptions eliminate that.

Add:

subscribe_push(callback_url, types=None) -> str   # subscription ID
unsubscribe_push(subscription_id)
renew_push(subscription_id)   # subscriptions expire, RFC 8620 §7.2

types defaults to ["CalendarEvent"]. New _methods/push.py with build_push_subscription_set and parse_push_subscription_set.

The callback URL must be HTTPS and publicly reachable by the server. This won't work behind localhost without tunneling. Document that clearly.

  • Unit tests with mocked responses
  • Integration test skipped in CI (needs public endpoint), document how to run manually

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions