Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(dav): add webhook compatibility for calendar object events #51082

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

edward-ly
Copy link
Contributor

@edward-ly edward-ly commented Feb 27, 2025

Summary

Adds webhook compatibility to events related to calendar objects (e.g. calendar events) via implementation of OCP\EventDispatcher\IWebhookCompatibleEvent.

TODO

Checklist

Copy link
Member

@ChristophWurst ChristophWurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this going to be a public API?

The events are in OCA, not OCP. There are no compatibility or stability guarantees in private app namespaces.

@edward-ly
Copy link
Contributor Author

edward-ly commented Feb 27, 2025

Is this going to be a public API?

The events are in OCA, not OCP. There are no compatibility or stability guarantees in private app namespaces.

Ah right, I forgot about that. So if webhooks can only listen to events in the public namespace, would adding a new namespace such as OCP\Calendar\Events and creating new events that extend the private ones be a viable solution?

EDIT: actually, in the webhook listeners documentation, there are some webhook events that are still in the OCA namespace, so I'm not sure if the workaround is really necessary.

@ChristophWurst
Copy link
Member

EDIT: actually, in the webhook listeners documentation, there are some webhook events that are still in the OCA namespace, so I'm not sure if the workaround is really necessary.

That is true and worrying to me, but on the other hand not my responsibility.

For caldav and carddav I will require a strict separation of private and public API, so we can continue to make easy modifications to internals, and have a solid, stable API for selected classes.

So yes, if these events are consumed by other apps, please move them to OCP. Do not extend private types from the public API. Just move them.

@ChristophWurst ChristophWurst marked this pull request as draft February 27, 2025 17:35
@ChristophWurst ChristophWurst added 2. developing Work in progress and removed 3. to review Waiting for reviews labels Feb 27, 2025
Copy link
Member

@ChristophWurst ChristophWurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See above. The goal of this PR is to expose a public API, which internal events aren't.

Thanks you for you contribution

@ChristophWurst ChristophWurst added the pending documentation This pull request needs an associated documentation update label Feb 27, 2025
@edward-ly edward-ly force-pushed the feat/dav/calendar-obj-event-webhooks branch from aa749d0 to 82477b8 Compare February 28, 2025 01:22
@AndyScherzinger AndyScherzinger added this to the Nextcloud 32 milestone Feb 28, 2025
@AndyScherzinger
Copy link
Member

/backport to stable31

@ChristophWurst
Copy link
Member

@AndyScherzinger are we backporting new APIs for this?

@edward-ly edward-ly force-pushed the feat/dav/calendar-obj-event-webhooks branch from 82477b8 to 7ee0155 Compare February 28, 2025 15:07
@AndyScherzinger
Copy link
Member

In this case yes, else the customer needs to wait until v32 enterprise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2. developing Work in progress backport-request feature: dav pending documentation This pull request needs an associated documentation update
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants