Skip to content

source-luma: initial release of the Luma capture connector - #5249

Open
danthelion wants to merge 1 commit into
mainfrom
source-luma-capture-connector
Open

danthelion wants to merge 1 commit into
mainfrom
source-luma-capture-connector

Conversation

@danthelion

Copy link
Copy Markdown
Contributor

Summary

New estuary-cdk capture connector for Luma.

Stream Endpoint Mode
calendars GET /v1/calendars/get snapshot (one doc: the calendar the key is scoped to)
events GET /v1/calendars/events/list snapshot, sweeps status=approved/pending, platforms=luma,external
guests GET /v1/events/guests/list per event snapshot, event_id stamped onto each doc
membership_tiers GET /v1/memberships/tiers/list snapshot

Everything is a snapshot because Luma exposes no updated_at and no "changed since" filter on any list endpoint; the only date filters key on an event's start_at. Re-listing per interval lets the CDK infer updates and deletions.

Auth is a bare API key in the x-luma-api-key header (custom authorization_header on TokenSource). Rate limit is 200 req/min per calendar key; the guests sweep costs one request per Luma-hosted event per poll, so its default interval is 15 minutes.

Verification

  • source-luma/bruno/ holds the GET-only probe collection with dated VERIFIED/UNOBSERVABLE findings (pagination, default-filter data-loss audit, over-limit page size, the calev- external-event 403).
  • poetry run pytest tests/ passes 3/3; live preview captured 1 calendar, 13 events, 1305 guests. Emails and phone numbers are redacted in the capture snapshot.
  • CI matrix entry, CHANGELOG.md, and docs/reference/Connectors/capture-connectors/luma.md included.

Notes for reviewers

  • membership_tiers is empty on the test calendar, so its populated shape rests on the OpenAPI schema plus inference.
  • Organization API keys (/v1/organizations/*) are not supported yet; the connector targets calendar keys.

Captures calendars, events, guests, and membership_tiers from a Luma
calendar API key. Every stream is a snapshot: Luma exposes no modification
timestamps or change filters, so each binding re-lists its resource every
interval and deletions are inferred. Guests are listed per event and get an
event_id stamped on; external (off-Luma) events are skipped for guests since
they have no guest list.

Includes the Bruno probe collection with verified API facts, CI matrix
registration, changelog, and docs page.
@strix-security

strix-security Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Strix Security Review

No security issues found.

Updated for f553457.


Reviewed by Strix
Re-run review · Configure security review settings

@estuary-docs-previews

Copy link
Copy Markdown

Docs preview: https://connectors-pr-5249-estuary-docs.mike-39e.workers.dev

Changed pages:

Rebuilt on every push, and the link stays the same.
Not a deploy: production is untouched until this merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant