You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Read large Confluence permission collections incrementally, detect repeated pages, and keep verification bounded without publishing partial permissions.
Select member cleanup candidates before each bounded update and recheck observations under the sync lease.
Show the existing permission warning in source details and align the Confluence troubleshooting guide.
Type of Change
Bug fix
Testing
295 unit/component tests and 18 disposable PostgreSQL integration tests passed. Covered large permission collections, malformed pagination, observation races, lease loss, and multi-batch cleanup. Live Confluence tests remain opt-in and were skipped. App type check, full lint, all 46 audits, block registry, and docs manifest checks passed. No schema changes.
The PR appears safe to merge, with the previous permission-warning issue fixed and manually resolved and no new actionable defects identified.
Summary
This PR makes Confluence permission collection fail closed while supporting large paginated datasets, bounds memory and runtime use, and makes member-document cleanup safe across batches and observation races. It also exposes permission-verification warnings consistently in source details and updates troubleshooting documentation.
Streams and validates Confluence permission pages with cursor, page, response-size, timeout, and ACL limits.
Selects lifecycle candidates in deterministic bounded batches and rechecks eligibility while holding the sync lease.
Keeps connector-level permission warnings visible independently of member synchronization errors.
Adds unit, component, and PostgreSQL integration coverage for pagination and lifecycle edge cases.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Request Confluence permission page] --> B{Page valid and bounded?}
B -- No --> H[Fail without publishing permissions]
B -- Yes --> C{Repeated page or cursor?}
C -- Yes --> H
C -- No --> D[Accumulate unique reader principals]
D --> E{Continuation present?}
E -- Yes --> A
E -- No --> F[Publish complete permission set]
I[Select bounded lifecycle candidates] --> J[Acquire and verify sync lease]
J --> K[Recheck observations and document state]
K --> L[Apply tombstone or resurrection update]
L --> M{More candidates before deadline?}
M -- Yes --> I
M -- No --> N[Finish or leave remaining work for next run]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Type of Change
Testing
295 unit/component tests and 18 disposable PostgreSQL integration tests passed. Covered large permission collections, malformed pagination, observation races, lease loss, and multi-batch cleanup. Live Confluence tests remain opt-in and were skipped. App type check, full lint, all 46 audits, block registry, and docs manifest checks passed. No schema changes.
Checklist