Skip to content

feat(atproto): add public AT URI resolve endpoint#570

Merged
tompscanlan merged 1 commit into
mainfrom
feature/aturi-resolve
Mar 22, 2026
Merged

feat(atproto): add public AT URI resolve endpoint#570
tompscanlan merged 1 commit into
mainfrom
feature/aturi-resolve

Conversation

@tompscanlan

@tompscanlan tompscanlan commented Mar 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds GET /api/atproto/resolve/:did/:collection/:rkey — public endpoint that resolves AT Protocol URIs to OpenMeet event URLs
  • Checks both native events (atprotoUri field) and firehose-ingested events (sourceId with sourceType=bluesky)
  • Validates collection against community.lexicon.calendar.event, returns 404 for unsupported collections
  • Rate-limited to 30 req/min, no auth required

Enables integration with eventsl.ink for cross-app AT Protocol event linking.

Companion PR: OpenMeet-Team/openmeet-platform#399

Test plan

  • Unit tests: 7 tests covering success, 404, unsupported collection, config missing, lookup priority
  • Manual: verified locally with curl against real DB data
  • Tested end-to-end with platform AT URI route

Add GET /api/atproto/resolve/:did/:collection/:rkey that resolves
AT Protocol URIs to OpenMeet event URLs. Supports both native
(atprotoUri) and firehose-ingested (sourceId) events. Public,
rate-limited, validates collection against community.lexicon.calendar.event.

Enables integration with eventsl.ink and other AT Protocol app routers.
@tompscanlan tompscanlan merged commit 31e42cc into main Mar 22, 2026
4 checks passed
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