[COMPASS-6085] Register Compass as a protocol handler for mongodb:// Created: 31/Aug/22  Updated: 29/Oct/23  Resolved: 28/Nov/22

Status: Closed
Project: Compass
Component/s: None
Affects Version/s: None
Fix Version/s: 1.35.0

Type: Task Priority: Major - P3
Reporter: Anna Henningsen Assignee: Anna Henningsen
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Documented
Duplicate
duplicates COMPASS-693 "Open in Compass" Button Closed
duplicates COMPASS-4579 Register Compass as default handler f... Closed
Epic Link: COMPASS-5816
Documentation Changes: Needed
Documentation Changes Summary:

Compass registers itself as a protocol handler for mongodb:// and mongodb+srv:// URLs (e.g. to make them clickable in the browser). For macOS and Windows, this behavior can be configured through an option in the settings UI.

Sprint: Iteration Porpoise

 Comments   
Comment by Githook User [ 02/Dec/22 ]

Author:

{'name': 'Anna Henningsen', 'email': 'anna.henningsen@mongodb.com', 'username': 'addaleax'}

Message: feat: register Compass as a protocol handler for mongodb:// COMPASS-6085 (#3829)

Register Compass as the protocol handler for `mongodb://`
and `mongodb+srv://` URLs.

  • Update the versions of our installer generator packages.
  • Add a `installURLHandlers` option that is available on Windows
    and macOS which controls whether Compass calls the relevant
    API for registering/unregistering as a protocol handler.
  • On these operating systems, Electron’s own API for registering
    and unregistering takes an effect. Additionally, on Windows,
    modifications to the registry are, while not strictly required,
    a standard thing to do for Electron apps.
  • For Windows, install and uninstall the Windows registry keys
    when squirrel install/uninstall events take effect. This involves
    effectively reverting the recent c30f74cb.
  • Add an electron app `open-url` handler. On macOS, this event
    is emitted instead of passing the URL as an argument on the command
    line (as would be customary on other OSes); this happens regardless
    of whether an active window already exists or not. If no active
    window exists, the passed URL is stored until the application is
    ready for showing browser windows.
  • Refactor the auto-connection logic to account for the possibility
    of a new window effectively having its own set of auto-connection
    preferences. This moves some of the existing logic to the main
    process rather than the renderer, since the main process now takes
    care of more preferences processing logic anyway.
  • Modify hadron-build to include the scheme registrations on Linux and
    macOS. On macOS, the `Info.plist` file of the app bundle is modified;
    on Linux, the installer generator packages that we use already have
    the capability to handle this.
  • Drive-by: Move the `setupTheme()` call from window-manager.ts to
    application.ts since it is not concerned with window management.

Unfortunately, it is hard to properly test this feature without
actually installing Compass. Unit tests are added where possible,
but no real integration tests. (Note that it is fairly easy to
test this feature through e.g.
`electron.shell.openExternal('mongodb://.../')`.)
Branch: revert-3723-revert-3709-compass-6170-remove-pipeline-from-text
https://github.com/mongodb-js/compass/commit/e3ac63bd187d674b27865523c639e78bf78ac7a1

Comment by Githook User [ 01/Dec/22 ]

Author:

{'name': 'Anna Henningsen', 'email': 'anna.henningsen@mongodb.com', 'username': 'addaleax'}

Message: feat: register Compass as a protocol handler for mongodb:// COMPASS-6085 (#3829)

Register Compass as the protocol handler for `mongodb://`
and `mongodb+srv://` URLs.

  • Update the versions of our installer generator packages.
  • Add a `installURLHandlers` option that is available on Windows
    and macOS which controls whether Compass calls the relevant
    API for registering/unregistering as a protocol handler.
  • On these operating systems, Electron’s own API for registering
    and unregistering takes an effect. Additionally, on Windows,
    modifications to the registry are, while not strictly required,
    a standard thing to do for Electron apps.
  • For Windows, install and uninstall the Windows registry keys
    when squirrel install/uninstall events take effect. This involves
    effectively reverting the recent c30f74cb.
  • Add an electron app `open-url` handler. On macOS, this event
    is emitted instead of passing the URL as an argument on the command
    line (as would be customary on other OSes); this happens regardless
    of whether an active window already exists or not. If no active
    window exists, the passed URL is stored until the application is
    ready for showing browser windows.
  • Refactor the auto-connection logic to account for the possibility
    of a new window effectively having its own set of auto-connection
    preferences. This moves some of the existing logic to the main
    process rather than the renderer, since the main process now takes
    care of more preferences processing logic anyway.
  • Modify hadron-build to include the scheme registrations on Linux and
    macOS. On macOS, the `Info.plist` file of the app bundle is modified;
    on Linux, the installer generator packages that we use already have
    the capability to handle this.
  • Drive-by: Move the `setupTheme()` call from window-manager.ts to
    application.ts since it is not concerned with window management.

Unfortunately, it is hard to properly test this feature without
actually installing Compass. Unit tests are added where possible,
but no real integration tests. (Note that it is fairly easy to
test this feature through e.g.
`electron.shell.openExternal('mongodb://.../')`.)
Branch: update-compass-shell-to-shared-config
https://github.com/mongodb-js/compass/commit/e3ac63bd187d674b27865523c639e78bf78ac7a1

Comment by Githook User [ 30/Nov/22 ]

Author:

{'name': 'Anna Henningsen', 'email': 'anna.henningsen@mongodb.com', 'username': 'addaleax'}

Message: feat: register Compass as a protocol handler for mongodb:// COMPASS-6085 (#3829)

Register Compass as the protocol handler for `mongodb://`
and `mongodb+srv://` URLs.

  • Update the versions of our installer generator packages.
  • Add a `installURLHandlers` option that is available on Windows
    and macOS which controls whether Compass calls the relevant
    API for registering/unregistering as a protocol handler.
  • On these operating systems, Electron’s own API for registering
    and unregistering takes an effect. Additionally, on Windows,
    modifications to the registry are, while not strictly required,
    a standard thing to do for Electron apps.
  • For Windows, install and uninstall the Windows registry keys
    when squirrel install/uninstall events take effect. This involves
    effectively reverting the recent c30f74cb.
  • Add an electron app `open-url` handler. On macOS, this event
    is emitted instead of passing the URL as an argument on the command
    line (as would be customary on other OSes); this happens regardless
    of whether an active window already exists or not. If no active
    window exists, the passed URL is stored until the application is
    ready for showing browser windows.
  • Refactor the auto-connection logic to account for the possibility
    of a new window effectively having its own set of auto-connection
    preferences. This moves some of the existing logic to the main
    process rather than the renderer, since the main process now takes
    care of more preferences processing logic anyway.
  • Modify hadron-build to include the scheme registrations on Linux and
    macOS. On macOS, the `Info.plist` file of the app bundle is modified;
    on Linux, the installer generator packages that we use already have
    the capability to handle this.
  • Drive-by: Move the `setupTheme()` call from window-manager.ts to
    application.ts since it is not concerned with window management.

Unfortunately, it is hard to properly test this feature without
actually installing Compass. Unit tests are added where possible,
but no real integration tests. (Note that it is fairly easy to
test this feature through e.g.
`electron.shell.openExternal('mongodb://.../')`.)
Branch: update-lg-again
https://github.com/mongodb-js/compass/commit/e3ac63bd187d674b27865523c639e78bf78ac7a1

Comment by Githook User [ 30/Nov/22 ]

Author:

{'name': 'Anna Henningsen', 'email': 'anna.henningsen@mongodb.com', 'username': 'addaleax'}

Message: feat: register Compass as a protocol handler for mongodb:// COMPASS-6085 (#3829)

Register Compass as the protocol handler for `mongodb://`
and `mongodb+srv://` URLs.

  • Update the versions of our installer generator packages.
  • Add a `installURLHandlers` option that is available on Windows
    and macOS which controls whether Compass calls the relevant
    API for registering/unregistering as a protocol handler.
  • On these operating systems, Electron’s own API for registering
    and unregistering takes an effect. Additionally, on Windows,
    modifications to the registry are, while not strictly required,
    a standard thing to do for Electron apps.
  • For Windows, install and uninstall the Windows registry keys
    when squirrel install/uninstall events take effect. This involves
    effectively reverting the recent c30f74cb.
  • Add an electron app `open-url` handler. On macOS, this event
    is emitted instead of passing the URL as an argument on the command
    line (as would be customary on other OSes); this happens regardless
    of whether an active window already exists or not. If no active
    window exists, the passed URL is stored until the application is
    ready for showing browser windows.
  • Refactor the auto-connection logic to account for the possibility
    of a new window effectively having its own set of auto-connection
    preferences. This moves some of the existing logic to the main
    process rather than the renderer, since the main process now takes
    care of more preferences processing logic anyway.
  • Modify hadron-build to include the scheme registrations on Linux and
    macOS. On macOS, the `Info.plist` file of the app bundle is modified;
    on Linux, the installer generator packages that we use already have
    the capability to handle this.
  • Drive-by: Move the `setupTheme()` call from window-manager.ts to
    application.ts since it is not concerned with window management.

Unfortunately, it is hard to properly test this feature without
actually installing Compass. Unit tests are added where possible,
but no real integration tests. (Note that it is fairly easy to
test this feature through e.g.
`electron.shell.openExternal('mongodb://.../')`.)
Branch: COMPASS-6325-fix-settings-modal-height-and-categories
https://github.com/mongodb-js/compass/commit/e3ac63bd187d674b27865523c639e78bf78ac7a1

Comment by Githook User [ 30/Nov/22 ]

Author:

{'name': 'Anna Henningsen', 'email': 'anna.henningsen@mongodb.com', 'username': 'addaleax'}

Message: feat: register Compass as a protocol handler for mongodb:// COMPASS-6085 (#3829)

Register Compass as the protocol handler for `mongodb://`
and `mongodb+srv://` URLs.

  • Update the versions of our installer generator packages.
  • Add a `installURLHandlers` option that is available on Windows
    and macOS which controls whether Compass calls the relevant
    API for registering/unregistering as a protocol handler.
  • On these operating systems, Electron’s own API for registering
    and unregistering takes an effect. Additionally, on Windows,
    modifications to the registry are, while not strictly required,
    a standard thing to do for Electron apps.
  • For Windows, install and uninstall the Windows registry keys
    when squirrel install/uninstall events take effect. This involves
    effectively reverting the recent c30f74cb.
  • Add an electron app `open-url` handler. On macOS, this event
    is emitted instead of passing the URL as an argument on the command
    line (as would be customary on other OSes); this happens regardless
    of whether an active window already exists or not. If no active
    window exists, the passed URL is stored until the application is
    ready for showing browser windows.
  • Refactor the auto-connection logic to account for the possibility
    of a new window effectively having its own set of auto-connection
    preferences. This moves some of the existing logic to the main
    process rather than the renderer, since the main process now takes
    care of more preferences processing logic anyway.
  • Modify hadron-build to include the scheme registrations on Linux and
    macOS. On macOS, the `Info.plist` file of the app bundle is modified;
    on Linux, the installer generator packages that we use already have
    the capability to handle this.
  • Drive-by: Move the `setupTheme()` call from window-manager.ts to
    application.ts since it is not concerned with window management.

Unfortunately, it is hard to properly test this feature without
actually installing Compass. Unit tests are added where possible,
but no real integration tests. (Note that it is fairly easy to
test this feature through e.g.
`electron.shell.openExternal('mongodb://.../')`.)
Branch: add-script-for-generating-readme-package-descriptions
https://github.com/mongodb-js/compass/commit/e3ac63bd187d674b27865523c639e78bf78ac7a1

Comment by Githook User [ 28/Nov/22 ]

Author:

{'name': 'Anna Henningsen', 'email': 'anna.henningsen@mongodb.com', 'username': 'addaleax'}

Message: feat: register Compass as a protocol handler for mongodb:// COMPASS-6085 (#3829)

Register Compass as the protocol handler for `mongodb://`
and `mongodb+srv://` URLs.

  • Update the versions of our installer generator packages.
  • Add a `installURLHandlers` option that is available on Windows
    and macOS which controls whether Compass calls the relevant
    API for registering/unregistering as a protocol handler.
  • On these operating systems, Electron’s own API for registering
    and unregistering takes an effect. Additionally, on Windows,
    modifications to the registry are, while not strictly required,
    a standard thing to do for Electron apps.
  • For Windows, install and uninstall the Windows registry keys
    when squirrel install/uninstall events take effect. This involves
    effectively reverting the recent c30f74cb.
  • Add an electron app `open-url` handler. On macOS, this event
    is emitted instead of passing the URL as an argument on the command
    line (as would be customary on other OSes); this happens regardless
    of whether an active window already exists or not. If no active
    window exists, the passed URL is stored until the application is
    ready for showing browser windows.
  • Refactor the auto-connection logic to account for the possibility
    of a new window effectively having its own set of auto-connection
    preferences. This moves some of the existing logic to the main
    process rather than the renderer, since the main process now takes
    care of more preferences processing logic anyway.
  • Modify hadron-build to include the scheme registrations on Linux and
    macOS. On macOS, the `Info.plist` file of the app bundle is modified;
    on Linux, the installer generator packages that we use already have
    the capability to handle this.
  • Drive-by: Move the `setupTheme()` call from window-manager.ts to
    application.ts since it is not concerned with window management.

Unfortunately, it is hard to properly test this feature without
actually installing Compass. Unit tests are added where possible,
but no real integration tests. (Note that it is fairly easy to
test this feature through e.g.
`electron.shell.openExternal('mongodb://.../')`.)
Branch: no-duplicate-stages
https://github.com/mongodb-js/compass/commit/e3ac63bd187d674b27865523c639e78bf78ac7a1

Comment by Githook User [ 28/Nov/22 ]

Author:

{'name': 'Anna Henningsen', 'email': 'anna.henningsen@mongodb.com', 'username': 'addaleax'}

Message: feat: register Compass as a protocol handler for mongodb:// COMPASS-6085 (#3829)

Register Compass as the protocol handler for `mongodb://`
and `mongodb+srv://` URLs.

  • Update the versions of our installer generator packages.
  • Add a `installURLHandlers` option that is available on Windows
    and macOS which controls whether Compass calls the relevant
    API for registering/unregistering as a protocol handler.
  • On these operating systems, Electron’s own API for registering
    and unregistering takes an effect. Additionally, on Windows,
    modifications to the registry are, while not strictly required,
    a standard thing to do for Electron apps.
  • For Windows, install and uninstall the Windows registry keys
    when squirrel install/uninstall events take effect. This involves
    effectively reverting the recent c30f74cb.
  • Add an electron app `open-url` handler. On macOS, this event
    is emitted instead of passing the URL as an argument on the command
    line (as would be customary on other OSes); this happens regardless
    of whether an active window already exists or not. If no active
    window exists, the passed URL is stored until the application is
    ready for showing browser windows.
  • Refactor the auto-connection logic to account for the possibility
    of a new window effectively having its own set of auto-connection
    preferences. This moves some of the existing logic to the main
    process rather than the renderer, since the main process now takes
    care of more preferences processing logic anyway.
  • Modify hadron-build to include the scheme registrations on Linux and
    macOS. On macOS, the `Info.plist` file of the app bundle is modified;
    on Linux, the installer generator packages that we use already have
    the capability to handle this.
  • Drive-by: Move the `setupTheme()` call from window-manager.ts to
    application.ts since it is not concerned with window management.

Unfortunately, it is hard to properly test this feature without
actually installing Compass. Unit tests are added where possible,
but no real integration tests. (Note that it is fairly easy to
test this feature through e.g.
`electron.shell.openExternal('mongodb://.../')`.)
Branch: update-react-tooltip-usage-to-lg
https://github.com/mongodb-js/compass/commit/e3ac63bd187d674b27865523c639e78bf78ac7a1

Comment by Githook User [ 28/Nov/22 ]

Author:

{'name': 'Anna Henningsen', 'email': 'anna.henningsen@mongodb.com', 'username': 'addaleax'}

Message: feat: register Compass as a protocol handler for mongodb:// COMPASS-6085 (#3829)

Register Compass as the protocol handler for `mongodb://`
and `mongodb+srv://` URLs.

  • Update the versions of our installer generator packages.
  • Add a `installURLHandlers` option that is available on Windows
    and macOS which controls whether Compass calls the relevant
    API for registering/unregistering as a protocol handler.
  • On these operating systems, Electron’s own API for registering
    and unregistering takes an effect. Additionally, on Windows,
    modifications to the registry are, while not strictly required,
    a standard thing to do for Electron apps.
  • For Windows, install and uninstall the Windows registry keys
    when squirrel install/uninstall events take effect. This involves
    effectively reverting the recent c30f74cb.
  • Add an electron app `open-url` handler. On macOS, this event
    is emitted instead of passing the URL as an argument on the command
    line (as would be customary on other OSes); this happens regardless
    of whether an active window already exists or not. If no active
    window exists, the passed URL is stored until the application is
    ready for showing browser windows.
  • Refactor the auto-connection logic to account for the possibility
    of a new window effectively having its own set of auto-connection
    preferences. This moves some of the existing logic to the main
    process rather than the renderer, since the main process now takes
    care of more preferences processing logic anyway.
  • Modify hadron-build to include the scheme registrations on Linux and
    macOS. On macOS, the `Info.plist` file of the app bundle is modified;
    on Linux, the installer generator packages that we use already have
    the capability to handle this.
  • Drive-by: Move the `setupTheme()` call from window-manager.ts to
    application.ts since it is not concerned with window management.

Unfortunately, it is hard to properly test this feature without
actually installing Compass. Unit tests are added where possible,
but no real integration tests. (Note that it is fairly easy to
test this feature through e.g.
`electron.shell.openExternal('mongodb://.../')`.)
Branch: main
https://github.com/mongodb-js/compass/commit/e3ac63bd187d674b27865523c639e78bf78ac7a1

Comment by Githook User [ 25/Nov/22 ]

Author:

{'name': 'Anna Henningsen', 'email': 'anna.henningsen@mongodb.com', 'username': 'addaleax'}

Message: feat: register Compass as a protocol handler for mongodb:// COMPASS-6085

Register Compass as the protocol handler for `mongodb://`
and `mongodb+srv://` URLs.

  • Update the versions of our installer generator packages.
  • Add a `installURLHandlers` option that is available on Windows
    and macOS which controls whether Compass calls the relevant
    API for registering/unregistering as a protocol handler.
  • On these operating systems, Electron’s own API for registering
    and unregistering takes an effect. Additionally, on Windows,
    modifications to the registry are, while not strictly required,
    a standard thing to do for Electron apps.
  • For Windows, install and uninstall the Windows registry keys
    when squirrel install/uninstall events take effect. This involves
    effectively reverting the recent c30f74cb.
  • Add an electron app `open-url` handler. On macOS, this event
    is emitted instead of passing the URL as an argument on the command
    line (as would be customary on other OSes); this happens regardless
    of whether an active window already exists or not. If no active
    window exists, the passed URL is stored until the application is
    ready for showing browser windows.
  • Refactor the auto-connection logic to account for the possibility
    of a new window effectively having its own set of auto-connection
    preferences. This moves some of the existing logic to the main
    process rather than the renderer, since the main process now takes
    care of more preferences processing logic anyway.
  • Modify hadron-build to include the scheme registrations on Linux and
    macOS. On macOS, the `Info.plist` file of the app bundle is modified;
    on Linux, the installer generator packages that we use already have
    the capability to handle this.
  • Drive-by: Move the `setupTheme()` call from window-manager.ts to
    application.ts since it is not concerned with window management.

Unfortunately, it is hard to properly test this feature without
actually installing Compass. Unit tests are added where possible,
but no real integration tests. (Note that it is fairly easy to
test this feature through e.g.
`electron.shell.openExternal('mongodb://.../')`.)
Branch: 6085-dev
https://github.com/mongodb-js/compass/commit/c9b8fec5d25962becbab86475dee01e44abced25

Generated at Wed Feb 07 22:41:52 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.