This repository was archived by the owner on Sep 24, 2026. It is now read-only.
Repository navigation
Add PATCH support for google-calendar events - #166
Closed
michielbdejong wants to merge 3 commits into
Closed
michielbdejong wants to merge 3 commits into
michielbdejong wants to merge 3 commits into
Conversation
Adds the one write operation atomic-plugins/devonian's google-calendar lens needs (ontola/atomic-plugins#5, Phase 1): a partial update to an event, limited to summary/description/location/start/end with If-Match optimistic-concurrency detection, matching planCalendarEdit/applyCalendarEdit in localthought/devonian's platform-lenses/google-calendar. - auth-overlay.yaml: introduces the patch operation and its security requirement, reusing the calendar.events scope already requested for the events GET operations (no new consent needed). - crud-causality-overlay.yaml: tags it x-crud action update/resource event. - schema-overlay.yaml: documents the event schema's etag field devonian reads from GET responses to populate If-Match.
Points auth-overlay.yaml, crud-causality-overlay.yaml and schema-overlay.yaml at c844b23 (adds PATCH support for events), based on the currently-pinned production commit (8f29d99) rather than main, whose tip has since gained an unrelated clockify entry that fails catalog validation (multiple authorization-code schemes without an oauthSecurityScheme selection) — keeping this pin minimal avoids dragging that unrelated breakage into the production default.
This was referenced Sep 21, 2026
Contributor
Author
|
Superseded by #167: Closing this one in favor of #167. |
5 of 6 tasks
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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
Part of the write-back gap closed by localthought/atomic-plugins#5 (Phase 1). The
google-calendarcomposed OpenAPI document only ever declaredGEToperations — the base document (vendored inopenapi-directory) is explicitly a "read-only subset" — sointegration-proxy'sCatalog::allows()rejected every write even though the OAuth scope had already been widened tocalendar.events. Devonian'sgoogle-calendarlens (planCalendarEdit/applyCalendarEditinlocalthought/devonian) has sentPATCH .../events/{id}with anIf-Matchheader and a partial JSON body (summary/description/location/start/end) since it was written, but nothing in the catalog ever allowed that request through.auth-overlay.yaml: adds thepatchoperation on/calendars/{calendarId}/events/{eventId}(parameters,requestBody,If-Matchheader,412response) and itssecurityrequirement. Reuses thecalendar.eventsscope already requested for the eventsGEToperations, so no new user consent/reconnect is needed. This overlay runs first incatalog.json's list socrud-causality-overlay.yamlcan layerx-crudon top of it afterwards.crud-causality-overlay.yaml: tags the new operationx-crud: {action: update, resource: event}.schema-overlay.yaml: documents theevent.etagfield devonian reads offGETresponses to populateIf-Match.catalog.json: pins the three changed overlay URLs to this branch's commit;pagination-overlay.yamlandidentity-overlay.yamlare untouched and stay on their existing pins.tests/test_identity_overlays.py: new regression test asserting the composedevents-patchoperation'soperationId,x-crud,security, request content type, and theetagschema field.Replaces #165, which was based on
main's tip —mainhas since gained an unrelatedclockifycatalog entry that failsCatalog::oauth_providervalidation, so this branch is based on the currently-deployed pin (8f29d997) instead, to keep the production pin bump minimal. Same overlay content, different (clean) base.A companion
integration-proxyPR bumpsDEFAULT_CATALOG_PATHto this branch's tip: localthought/integration-proxy#75Test plan
python3 -c "import yaml; ..."— all three edited overlay YAML files parse.python3 -c "import json; ..."—catalog.jsonparses.python tests/test_identity_overlays.py— all 3 tests pass, including the new one, against the composition fetched live from this branch's pushed commit (exercisesopenapi_spec_validator.validate()on the merged document viagenerate_identity_catalog_fixtures.compose()).integration-proxy's pinned-fixture tests pass against this branch's tip (see linked PR).integration-proxyand a real connected account.🤖 Generated with Claude Code
https://claude.ai/code/session_01YZYTjDU1jrJXXfQB1YPYLA
Generated by Claude Code