Skip to content

feat(settings): add anniversary ICS subscription controls - #1319

Open
elig-45 wants to merge 1 commit into
gramps-project:mainfrom
elig-45:anniversary-ics-subscription-ui
Open

feat(settings): add anniversary ICS subscription controls#1319
elig-45 wants to merge 1 commit into
gramps-project:mainfrom
elig-45:anniversary-ics-subscription-ui

Conversation

@elig-45

@elig-45 elig-45 commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Add the frontend controls needed to create and copy a private anniversary calendar subscription URL.

This is the final frontend step for the anniversary ICS feature. Persistent token status and revocation remain centralized in the Access tokens manager from #1007.

What's included

  • Add an Anniversary calendar (ICS) section under Settings > User with Gramps Web API 3.21 or newer.
  • Generate or rotate the scoped anniversaries_ics token using:
    • POST /api/users/-/access-tokens/anniversaries_ics/
  • Build the complete subscription URL:
    • /api/anniversaries.ics?token=...
  • Allow the URL to be copied immediately after generation.
  • Explain that the URL cannot be recovered later and must be regenerated if lost.
  • Synchronize generation with the centralized token status from feat(settings): add persistent access token management #1007.
  • Clear the displayed URL when the token is revoked centrally.
  • Keep token revocation exclusively in the centralized Access tokens manager.

Security

  • The raw token is used only to construct the subscription URL returned to the user.
  • The component does not expose or store a separate raw token value.
  • Existing token values are never retrieved.
  • The generated URL is cleared after centralized revocation.
  • No duplicate revocation logic or DELETE request is added here.

Testing

Added unit coverage for:

  • API compatibility gating
  • Token generation and rotation
  • Complete and correctly encoded ICS URLs
  • Same-origin and configured API hosts
  • Missing-token and API failure handling
  • Clipboard behavior
  • Centralized revocation synchronization
  • Absence of duplicate revocation behavior

Related

@elig-45
elig-45 force-pushed the anniversary-ics-subscription-ui branch from 6befc0c to 328a336 Compare August 12, 2026 19:18
@elig-45
elig-45 marked this pull request as ready for review August 12, 2026 19:18
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