Update dashboard_overview.html#8
Closed
nathanael-h wants to merge 1 commit into
Closed
Conversation
fix bad route to add calendar source
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8 +/- ##
=======================================
Coverage 13.38% 13.38%
=======================================
Files 16 16
Lines 5498 5498
=======================================
Hits 736 736
Misses 4762 4762 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
olivierlambert
added a commit
that referenced
this pull request
Mar 12, 2026
…debar - Fix LOCATION field in ICS events leaking ORGANIZER info (RFC 5545 line folding caused by trailing spaces after CRLF) - Fix wrong event times in CalDAV write-back: convert guest-timezone times to UTC with Z suffix instead of floating time - Fix hardcoded "UTC" guest_timezone in approve/confirm handlers, now fetched from booking record - Fix broken "Add a calendar source" link on dashboard overview (/dashboard/sources/add → /dashboard/sources/new) (fixes PR #8) - Show calrs version in dashboard sidebar (closes #7) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Owner
|
Thanks! Fix included in v0.18.2 (commit d8bfea7). Applied the same fix directly since we were cutting a patch release. |
huntervcx
pushed a commit
to DYB-Corp/calrs
that referenced
this pull request
Jun 3, 2026
Blockers (from review): - Migration 050_provider_type renumbered to 054_provider_type to avoid collision with upstream main's 051-053. src/db.rs migration array + CLAUDE.md index updated. - Migration-count assertions in db.rs tests bumped from 50 to 54. Substantive review items folded in: - sync_folder_items now caps at 200 SOAP iterations; a server that never sets IncludesLastItemInRange=true returns partial results and is resumed from the latest cursor next sync. (olivierlambert#8) - synth_vcalendar emits DTSTAMP per RFC 5545; EWS doesn't expose a stable last-modified, so we use Utc::now(). (olivierlambert#6) - EWS sync_delta comment rewritten to acknowledge "EWS sources rely on full fetches" rather than claiming the cursor gets bootstrapped. (olivierlambert#3, option A) - fetch_events_since wired into sync_ews_source with the same 90-day lookback used by the CalDAV path. The EWS impl uses CalendarView (server-side window). remove_orphaned_ews_events now takes the same since_prefix scoping as the CalDAV variant so events outside the window are not flagged as orphans. (olivierlambert#4) - format_dt TODO documenting naive-local TZID drift on non-recurring items. (olivierlambert#7) - Autodiscover redirect policy now carries an explicit comment about the SSRF residual risk on intermediate Location headers. (olivierlambert#5) - 054_provider_type.sql explains the calendars.href / calendars.ctag reuse for EWS folder ItemId / ChangeKey. (olivierlambert#9) - extract_vcalendar comment corrected: the \r\n /\r\n\t replacements are RFC 5545 §3.1 line-fold unfolding, not "stray indentation". Rebase side-effects: - SSRF guard now uses upstream's CALRS_ALLOW_PRIVATE_HOSTS allowlist (hostname-scoped) instead of the previous boolean toggle. private_ host_allowlist() is exposed for the serve startup WARN log. - Sources flow (commands/source.rs, commands/sync.rs, web/mod.rs) reconciled with upstream's OAuth2 dispatch + orphan-cancel work: EWS sources go through the provider trait, CalDAV sources keep the CaldavClient path (basic-auth or OAuth2 unchanged). - new sync_ews_source/upsert_calendar_provider/upsert_provider_events helpers in commands/sync.rs to keep the EWS path off the CalDAV CaldavClient signature. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
huntervcx
pushed a commit
to DYB-Corp/calrs
that referenced
this pull request
Jun 3, 2026
Blockers (from review): - Migration 050_provider_type renumbered to 054_provider_type to avoid collision with upstream main's 051-053. src/db.rs migration array + CLAUDE.md index updated. - Migration-count assertions in db.rs tests bumped from 50 to 54. Substantive review items folded in: - sync_folder_items now caps at 200 SOAP iterations; a server that never sets IncludesLastItemInRange=true returns partial results and is resumed from the latest cursor next sync. (olivierlambert#8) - synth_vcalendar emits DTSTAMP per RFC 5545; EWS doesn't expose a stable last-modified, so we use Utc::now(). (olivierlambert#6) - EWS sync_delta comment rewritten to acknowledge "EWS sources rely on full fetches" rather than claiming the cursor gets bootstrapped. (olivierlambert#3, option A) - fetch_events_since wired into sync_ews_source with the same 90-day lookback used by the CalDAV path. The EWS impl uses CalendarView (server-side window). remove_orphaned_ews_events now takes the same since_prefix scoping as the CalDAV variant so events outside the window are not flagged as orphans. (olivierlambert#4) - format_dt TODO documenting naive-local TZID drift on non-recurring items. (olivierlambert#7) - Autodiscover redirect policy now carries an explicit comment about the SSRF residual risk on intermediate Location headers. (olivierlambert#5) - 054_provider_type.sql explains the calendars.href / calendars.ctag reuse for EWS folder ItemId / ChangeKey. (olivierlambert#9) - extract_vcalendar comment corrected: the \r\n /\r\n\t replacements are RFC 5545 §3.1 line-fold unfolding, not "stray indentation". Rebase side-effects: - SSRF guard now uses upstream's CALRS_ALLOW_PRIVATE_HOSTS allowlist (hostname-scoped) instead of the previous boolean toggle. private_ host_allowlist() is exposed for the serve startup WARN log. - Sources flow (commands/source.rs, commands/sync.rs, web/mod.rs) reconciled with upstream's OAuth2 dispatch + orphan-cancel work: EWS sources go through the provider trait, CalDAV sources keep the CaldavClient path (basic-auth or OAuth2 unchanged). - new sync_ews_source/upsert_calendar_provider/upsert_provider_events helpers in commands/sync.rs to keep the EWS path off the CalDAV CaldavClient signature. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
olivierlambert
pushed a commit
that referenced
this pull request
Jun 4, 2026
* feat(providers): add Microsoft Exchange (EWS) calendar provider
Introduces a generic CalendarProvider trait so calrs is no longer
hard-wired to CalDAV. Adds an EWS implementation targeting on-prem
Exchange 2019 (also compatible with 2016/2013) with Autodiscover,
calendar listing, full + windowed event fetch, create/delete, and
SyncFolderItems delta sync.
The CalDAV path is preserved unchanged behind a thin adapter; sync,
source management, and write-back now dispatch on a new provider_type
column (migration 050). HTTPS-only and SSRF-safe URL validation is
shared across both providers, and Autodiscover candidate URLs are
re-validated before they get hit.
Layout:
src/providers/ trait + factory + caldav adapter
src/ews/ soap, autodiscover, operations, parse, ical synth
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fixup(ews): drop unused Context import + dead summary_view, collapse
duplicate connection-check arms, rustfmt
Cargo.lock is updated by Cargo's first compile after a fresh dependency
add (async-trait); committing it so a clean checkout doesn't churn it.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* wip: save ews provider work
* feat: clean sources presets filtered via backend
* fixup(ews): address review blockers + substantive items
Blockers (from review):
- Migration 050_provider_type renumbered to 054_provider_type to avoid
collision with upstream main's 051-053. src/db.rs migration array +
CLAUDE.md index updated.
- Migration-count assertions in db.rs tests bumped from 50 to 54.
Substantive review items folded in:
- sync_folder_items now caps at 200 SOAP iterations; a server that
never sets IncludesLastItemInRange=true returns partial results and
is resumed from the latest cursor next sync. (#8)
- synth_vcalendar emits DTSTAMP per RFC 5545; EWS doesn't expose a
stable last-modified, so we use Utc::now(). (#6)
- EWS sync_delta comment rewritten to acknowledge "EWS sources rely
on full fetches" rather than claiming the cursor gets bootstrapped.
(#3, option A)
- fetch_events_since wired into sync_ews_source with the same 90-day
lookback used by the CalDAV path. The EWS impl uses CalendarView
(server-side window). remove_orphaned_ews_events now takes the same
since_prefix scoping as the CalDAV variant so events outside the
window are not flagged as orphans. (#4)
- format_dt TODO documenting naive-local TZID drift on non-recurring
items. (#7)
- Autodiscover redirect policy now carries an explicit comment about
the SSRF residual risk on intermediate Location headers. (#5)
- 054_provider_type.sql explains the calendars.href / calendars.ctag
reuse for EWS folder ItemId / ChangeKey. (#9)
- extract_vcalendar comment corrected: the \r\n /\r\n\t replacements
are RFC 5545 §3.1 line-fold unfolding, not "stray indentation".
Rebase side-effects:
- SSRF guard now uses upstream's CALRS_ALLOW_PRIVATE_HOSTS allowlist
(hostname-scoped) instead of the previous boolean toggle. private_
host_allowlist() is exposed for the serve startup WARN log.
- Sources flow (commands/source.rs, commands/sync.rs, web/mod.rs)
reconciled with upstream's OAuth2 dispatch + orphan-cancel work:
EWS sources go through the provider trait, CalDAV sources keep the
CaldavClient path (basic-auth or OAuth2 unchanged).
- new sync_ews_source/upsert_calendar_provider/upsert_provider_events
helpers in commands/sync.rs to keep the EWS path off the CalDAV
CaldavClient signature.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Arthur Perrot <aperrot@dyb.fr>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
huntervcx
pushed a commit
to DYB-Corp/calrs
that referenced
this pull request
Jun 25, 2026
…debar - Fix LOCATION field in ICS events leaking ORGANIZER info (RFC 5545 line folding caused by trailing spaces after CRLF) - Fix wrong event times in CalDAV write-back: convert guest-timezone times to UTC with Z suffix instead of floating time - Fix hardcoded "UTC" guest_timezone in approve/confirm handlers, now fetched from booking record - Fix broken "Add a calendar source" link on dashboard overview (/dashboard/sources/add → /dashboard/sources/new) (fixes PR olivierlambert#8) - Show calrs version in dashboard sidebar (closes olivierlambert#7) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
huntervcx
added a commit
to DYB-Corp/calrs
that referenced
this pull request
Jun 25, 2026
…ert#103) * feat(providers): add Microsoft Exchange (EWS) calendar provider Introduces a generic CalendarProvider trait so calrs is no longer hard-wired to CalDAV. Adds an EWS implementation targeting on-prem Exchange 2019 (also compatible with 2016/2013) with Autodiscover, calendar listing, full + windowed event fetch, create/delete, and SyncFolderItems delta sync. The CalDAV path is preserved unchanged behind a thin adapter; sync, source management, and write-back now dispatch on a new provider_type column (migration 050). HTTPS-only and SSRF-safe URL validation is shared across both providers, and Autodiscover candidate URLs are re-validated before they get hit. Layout: src/providers/ trait + factory + caldav adapter src/ews/ soap, autodiscover, operations, parse, ical synth Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fixup(ews): drop unused Context import + dead summary_view, collapse duplicate connection-check arms, rustfmt Cargo.lock is updated by Cargo's first compile after a fresh dependency add (async-trait); committing it so a clean checkout doesn't churn it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * wip: save ews provider work * feat: clean sources presets filtered via backend * fixup(ews): address review blockers + substantive items Blockers (from review): - Migration 050_provider_type renumbered to 054_provider_type to avoid collision with upstream main's 051-053. src/db.rs migration array + CLAUDE.md index updated. - Migration-count assertions in db.rs tests bumped from 50 to 54. Substantive review items folded in: - sync_folder_items now caps at 200 SOAP iterations; a server that never sets IncludesLastItemInRange=true returns partial results and is resumed from the latest cursor next sync. (olivierlambert#8) - synth_vcalendar emits DTSTAMP per RFC 5545; EWS doesn't expose a stable last-modified, so we use Utc::now(). (olivierlambert#6) - EWS sync_delta comment rewritten to acknowledge "EWS sources rely on full fetches" rather than claiming the cursor gets bootstrapped. (olivierlambert#3, option A) - fetch_events_since wired into sync_ews_source with the same 90-day lookback used by the CalDAV path. The EWS impl uses CalendarView (server-side window). remove_orphaned_ews_events now takes the same since_prefix scoping as the CalDAV variant so events outside the window are not flagged as orphans. (olivierlambert#4) - format_dt TODO documenting naive-local TZID drift on non-recurring items. (olivierlambert#7) - Autodiscover redirect policy now carries an explicit comment about the SSRF residual risk on intermediate Location headers. (olivierlambert#5) - 054_provider_type.sql explains the calendars.href / calendars.ctag reuse for EWS folder ItemId / ChangeKey. (olivierlambert#9) - extract_vcalendar comment corrected: the \r\n /\r\n\t replacements are RFC 5545 §3.1 line-fold unfolding, not "stray indentation". Rebase side-effects: - SSRF guard now uses upstream's CALRS_ALLOW_PRIVATE_HOSTS allowlist (hostname-scoped) instead of the previous boolean toggle. private_ host_allowlist() is exposed for the serve startup WARN log. - Sources flow (commands/source.rs, commands/sync.rs, web/mod.rs) reconciled with upstream's OAuth2 dispatch + orphan-cancel work: EWS sources go through the provider trait, CalDAV sources keep the CaldavClient path (basic-auth or OAuth2 unchanged). - new sync_ews_source/upsert_calendar_provider/upsert_provider_events helpers in commands/sync.rs to keep the EWS path off the CalDAV CaldavClient signature. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Arthur Perrot <aperrot@dyb.fr> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
fix bad route to add calendar source