Skip to content

[Buyer Gap] Replace pseudo-CalDAV feed with a Naruon-owned calendar projection #336

Description

@seonghobae

Buyer problem

LineageWeave already derives customer commitments into issue_ticket rows with due dates, exposes them as To Do / Calendar items, and links Calendar selections back to Event Lineage. The legacy external adapter named caldav_client performs a custom JSON GET {CALDAV_BASE_URL}/events; it is not an RFC 4791 CalDAV implementation.

That naming creates a product-truth gap. A buyer may reasonably infer collection discovery, calendar-query REPORT, recurrence, VTIMEZONE, sync-token, ETag, scheduling, and provider authorization behavior that LineageWeave does not implement.

Authority boundary

  • LineageWeave owns post-grounded commitments, issue tickets, ontology/provenance links, authorization, and the Buyer projection that combines independently typed sources.
  • Naruon owns customer-owned CalDAV/CardDAV/WebDAV provider access, source registry, capability discovery, synchronization/reconciliation, ETag/sync-token handling, writeback, and provider evidence.
  • LineageWeave must never receive raw provider credentials, forward a buyer bearer token, call a provider DAV endpoint directly, or treat an external event as an internal commitment.
  • commitments remain LineageWeave-authoritative post-derived work records; events remain Naruon-observed provider projections.

Current implementation

The obsolete inherited stack PR #337 is closed without merge. Its intended contract is reconstructed normally on current protected main as PR #355.

PR #355 provides:

  1. a strict immutable parser and public package API for Naruon-owned event pages;
  2. one audience-scoped service credential, with whitespace/control rejection and no end-user-token forwarding;
  3. opaque source/event/occurrence references, provider revision, interval, timezone/all-day, status, disclosure, and observed provenance;
  4. rejection of unsafe URLs, naive/invalid clocks, duplicate occurrences, unknown fields/vocabularies, URL-shaped references, and ambiguous numeric values;
  5. hard bounds of 366 days, 200 events, 30 seconds, and 1 MiB before JSON parsing;
  6. corrected ADR 0038 pseudo-CalDAV language and accepted ADR 0123 authority/runtime boundary;
  7. no runtime wiring until Naruon publishes the matching endpoint, audience, and immutable provider fixtures.

TDD acceptance

  • A valid scoped page round-trips occurrence identity, timezone/all-day semantics, provider revision, disclosure, and observed provenance.
  • Duplicate occurrence IDs, end-before-start, naive or calendar-invalid RFC 3339 values, unknown fields/vocabularies, oversized pages/bodies, and malformed cursors fail closed.
  • The adapter sends exactly one configured service bearer credential to the configured Naruon endpoint and never places it in a URL, error, returned object, or test fixture output.
  • Naruon unavailable or malformed responses cannot erase LineageWeave commitments because runtime combination remains a separate fail-closed step.
  • No direct CalDAV dependency, provider credential, event store, or writeback path is added to LineageWeave.
  • Changed production statement/branch coverage and public docstrings remain 100%.

Runtime activation gate

The contract PR may merge independently. Runtime activation remains blocked until:

  1. Naruon #978/#998 publishes the endpoint, media type, service audience, provider revisions, and conformance fixtures;
  2. LineageWeave adds fail-closed Buyer API wiring without forwarding an end-user token;
  3. provider/consumer contract tests pin immutable released artifacts;
  4. degraded, timeout, retry, revision, and reconciliation cases pass;
  5. exact-head checks, security gates, review-thread resolution, and independent approval pass in both repositories.

Standards and references

  • Daboo, C., Desruisseaux, B., & Dusseault, L. M. (2007). Calendaring extensions to WebDAV (CalDAV) (RFC 4791). RFC Editor.
  • Daboo, C., & Quillaud, A. (2012). Collection synchronization for WebDAV (RFC 6578). RFC Editor.
  • Desruisseaux, B. (2009). Internet calendaring and scheduling core object specification (iCalendar) (RFC 5545). RFC Editor.
  • World Wide Web Consortium. (2013). PROV-O: The PROV ontology.

Do not self-approve, force-push, import the superseded branch, or bypass protection.

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