Merged
Conversation
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes #1659
Why this change exists
Compass used to start an ngrok tunnel from inside the backend process. That made local Google Calendar watch testing convenient, but it also meant the app had a built-in dependency on a third-party tunnel service just to boot the backend in some environments.
This PR removes that built-in ngrok behavior and makes Google support optional. The goal is to let Compass run cleanly in password-only/self-hosted/local setups, while keeping Google sign-in and Google Calendar sync available when the right Google credentials are provided.
A follow-up PR will cover the new local end-to-end Google Calendar Watch workflow using an explicit developer-run tunnel, such as Cloudflare Tunnel. This PR intentionally does not replace ngrok with another automatic tunnel.
What changed
Backend startup no longer manages ngrok
NGROK_AUTHTOKEN/NGROK_DOMAINfrom required or recognized backend environment config.Google config is now optional
GOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRETcan now be left unset.TOKEN_GCAL_NOTIFICATIONis only required when Google is configured and the backendBASEURLis HTTPS, because that is the mode where Google Calendar webhook notifications can actually be enabled.The web app asks the backend whether Google is available
/api/config, which tells the frontend whether backend Google support is configured.Auth and UI handling were adjusted for password-only mode
Docs and examples were updated
Important behavior note
After this PR, Compass will not automatically create a public HTTPS tunnel during local backend startup.
That means:
BASEURLis local HTTP.This is expected. The replacement local testing workflow is handled separately so the tunnel is explicit, developer-controlled, and not tied to backend startup.
Test plan
bun run test:backendbun run test:webbun run lintAll three completed successfully. Lint still reports the repo's existing warnings, but exits successfully.