-
Notifications
You must be signed in to change notification settings - Fork 17
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
[1.0.0] Add support for RFC-4533 style directory synchronization. #67
Conversation
…tion properly. Each entry result / referral has associated controls related to the sync.
…ves more granular control over processing referral results / entry results and lets library users process results as they come in instead of waiting until the end of the result set.
…re. This still does not represent any finished product. However, it does represent what was being worked on before this effort was previously dropped. There's a lot to be redesigned here and tested. But this provides a cleaner starting point.
Codecov Report
@@ Coverage Diff @@
## 1.0 #67 +/- ##
============================================
+ Coverage 86.89% 87.07% +0.17%
- Complexity 1873 2093 +220
============================================
Files 131 151 +20
Lines 5465 6507 +1042
============================================
+ Hits 4749 5666 +917
- Misses 716 841 +125
... and 79 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
…. It's less awkward than interfaces, as the result processing would not normally need a full class, even though the signature is more explicit than an anonymous function.
… re-thought through.
…public interface. More work to be done.
…r as an optional parameter. This contains potentially needed information, such as the current cookie or the current stage / phase of the sync process.
…ndled. It is either a polling sync that exists, or a listening sync that continues indefinitely.
2169749
to
a663564
Compare
…w cookie. Add a handler so that library users can manage the cookie as it is changed / updated.
…ean for state results. Some of them, like "add", are not very straightforward. For instance, an "add" could just be modifications, initial content polling, or an entry being renamed / moved. These are details of how SyncRepl works and the library consumer will need to figure out the best course of action for the entry on the sync target.
…ng sync phases correctly for polling (the RFC is quite confusing).
9827437
to
65b71c1
Compare
…pport canceling requests in general. I will implement this separately.
There is still work to be done on this, but I feel like it is in a good enough state to at least get into the
|
This is very much a work-in-progress PR. I started this effort years ago but never finished it. This represents the work that was done and has been slightly altered for the updates to PHP and some other changes. I want to rethink my approach in general, so this will likely go through a couple of iterations before I merge it into the
1.0
branch. The original work was never in a completed state anyway, and only half worked.For reference, this is the RFC:
https://datatracker.ietf.org/doc/html/rfc4533
This directory synchronization seems primarily used by OpenLDAP; I'm unsure if other LDAP implementations use it. Microsoft AD uses its own synchronization process that I already support via DirSync.
#50