Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for callback URLs to allow external joplin:// URLs #5168

Closed
laurent22 opened this issue Jul 10, 2021 · 39 comments · Fixed by #5302
Closed

Add support for callback URLs to allow external joplin:// URLs #5168

laurent22 opened this issue Jul 10, 2021 · 39 comments · Fixed by #5302
Labels
enhancement Feature requests and code enhancements mobile All mobile platforms spec Fully developed spec that can serve as a starting point for a project

Comments

@laurent22
Copy link
Owner

laurent22 commented Jul 10, 2021

Should implement the x-callback-url spec: http://x-callback-url.com/specifications/

This spec is for iOS but is used by desktop apps too such as Bear.

Forum post: https://discourse.joplinapp.org/t/are-url-links-on-the-roadmap/599

Example URLs

  • Opening a note: joplin://x-callback-url/openNote?id=NOTE_ID
  • Getting a note: joplin://x-callback-url/getNote?id=NOTE_ID&x-success=targetApp://x-callback-url/receiveNote
  • Creating a note: joplin://x-callback-url/createNote?title=NOTE_TITLE&body=NOTE_BODY
  • Opening a notebook: joplin://x-callback-url/openFolder?id=FOLDER_ID

Implementation

To keep things simple all the actions should be performed by the data API. The goal then is to create a translation layer that maps the x-callback-url call to a data API call, and then handle the response.

For example, joplin://x-callback-url/createNote?title=NOTE_TITLE&body=NOTE_BODY would be translated to POST /notes with the title/body as post data.

Security

Security should be considered for destructive actions, for example when creating or deleting a note. In that case, perhaps the API token should be required (and passed to the data API, which will check it).

Non-destructive actions such as opening a note perhaps don't need a token.

Platforms

Ideally both mobile and desktop should be supported eventually, so the implementation should be made in such a way that both platforms can re-use most of the code.

Update 2021-10-16

This was implemented in desktop, so only mobile is needed now.

@laurent22 laurent22 added enhancement Feature requests and code enhancements mobile All mobile platforms desktop All desktop platforms spec Fully developed spec that can serve as a starting point for a project labels Jul 10, 2021
@arnoldoree
Copy link

arnoldoree commented Jul 11, 2021

I've had a look over the development environment specification, and that should be fine.

As far as coding goes, even though I have not used Node.js or TypeScrypt before I am sure I will be able to pick those up promptly.

Are there any design level artefacts available, principally a system architecture document (e.g. UML diagram)?

Withe regard to the x-callback-url functionality. My principal target platform is actually Linux, as all my machines run or Debian. I believe that the equivalent to x-callback in Linux is custom URL protocol handlers [x-scheme-handler]. I would of course look to implement the functionality on all platform Joplin applications, however working on my native platform first will be most straight forward.

I'm not sure what the convention is i.e. whether I should have moved over to the GitHub issue already, so I will copy this message both here and there.

I've outlined a basic programme as follows:

CODE

  • A method will need to be coded for constructing the externally accessible (Data API) URL for the target note and copying it to the clipboard
    • This method should be accessible via:
      • UI button press
      • Context menu option
  • An openNoteExt() method will need to be coded to finally execute the changing of the active note in the Joplin application to the target note.

EXECUTION FLOW

  • The Data API sub-system will need to call the openNoteExt() method upon receiving a request at the endpoint URL
  • The openNoteExt() method will need to change the active note in the Joplin application to the target note identified in the request URL, and to bring the Joplin application into focus if it is already open and in the background.

@laurent22
Copy link
Owner Author

There's no UML diagram but if something's unclear I can explain. For a start it would indeed make sense to only focus on a way to open a note, which I guess will be the common use case. In that case you can ignore what I wrote about the data API - instead you'll only need to call the openNote command (await CommandService.instance().execute('openNote', 'NOTE_ID'))

A method will need to be coded for constructing the externally accessible (Data API) URL for the target note and copying it to the clipboard

  • This method should be accessible via:

    • UI button press
    • Context menu option

I don't understand this part - since it's a callback URL there should be no UI, or am I missing something?

openNoteExt

Small thing, but it should be called "openNote", not "openNoteExt".

@arnoldoree
Copy link

arnoldoree commented Jul 11, 2021

There's no UML diagram but if something's unclear I can explain

Sure thanks, will let you know once I get into the code if I need any clarification.

A method will need to be coded for constructing the externally accessible (Data API) URL for the target note and copying it to the clipboard

  • This method should be accessible via:

    • UI button press
    • Context menu option

I don't understand this part - since it's a callback URL there should be no UI, or am I missing something?

Sorry I don't think I explained very clearly. What I am referring to here is how the user will be able to generate a URI to open a target note. So for instance if the user wanted to access a specific note from within a LibreOffice Writer document they would:

  1. EITHER: Right click the note and click generate external link, OR select the note and click a button to generate an external link
  2. The link would then be generated in accordance to the scheme specified, and copied to the user's clipboard
  3. The user could then paste this link into a LibreOffice Writer document and effectively have direct access to the note from most all places within the operating system environment.

Where this were combined with an application such as XMind it will give a very simple yet extremely powerful functionality.

openNoteExt

Small thing, but it should be called "openNote", not "openNoteExt".

I see. The reason for the ...Ext was to disambiguate, openNote() could be a method to open a note from within the application, from for instance another note. I have not looked at the internals of the system yet, so I do not know if any transformations would have already been handled by the openNote method.

I would say however also that having two separate methods one for open from within Joplin and one from the OS environment or a remote host will generate greater flexibility going forward, giving options to preform action such as extra security checks. At this stage openNoteExt could simply call openNote and do nothing more.

@arnoldoree
Copy link

arnoldoree commented Jul 11, 2021

@laurent22. Can you please expand at a high level on the deeper integrations that you are driving towards with the use of the callback method & Data API? I.e. What is an example of an application & use case that may require retrieving a note from Joplin or directly creating a note within Joplin?

@laurent22
Copy link
Owner Author

What I am referring to here is how the user will be able to generate a URI to open a target note. So for instance if the user wanted to access a specific note from within a LibreOffice Writer document they would:

  1. EITHER: Right click the note and click generate external link, OR select the note and click a button to generate an external link
  2. The link would then be generated in accordance to the scheme specified, and copied to the user's clipboard
  3. The user could then paste this link into a LibreOffice Writer document and effectively have direct access to the note from most all places within the operating system environment.

Yes indeed we need this, and I should probably add it to the spec.

Can you please expand at a high level on the deeper integrations that you are driving towards with the use of the callback method & Data API? I.e. What is an example of an application & use case that may require retrieving a note from Joplin or directly creating a note within Joplin?

I just copied the callback example from the x-callback-url. We don't need this for now, I guess as a start just a way to open a note would be enough.

@atdnorth
Copy link

Sorry I don't think I explained very clearly. What I am referring to here is how the user will be able to generate a URI to open a target note. So for instance if the user wanted to access a specific note from within a LibreOffice Writer document they would

@arnoldoree If I understand your question correctly - My use case is copying an x-callback-url from a Joplin note into OmniFocus or DevonThink. In this way, I can access the Joplin note easily in my task manager (OmniFocus) or my information repository (DevonThink).

The ideal way (as occurs in most applications) would be to right-click on the note in Joplin, choose "Copy Link" as a selection, and then go into my target application and paste this link into a document. So, for instance, I would paste the Joplin link (with the Joplin note name as the visible text and the x-callback-url as the link) into OmniFocus or DevonThink.

@arnoldoree
Copy link

arnoldoree commented Jul 24, 2021

@atdnorth Yes. That's very well put. To my view this is somewhat standard functionality. Moreover I do not necessarily see the need for a call-back URL in implementing the functionality set out in this issue at the basic level.

If we want to take things further, for instance by providing the capability to return an edited version of a given note to the calling application, then we could create a loop in Joplin, allow the user to carry through the edits, and where the user gives say-so the loop could be broken and the editd note passed back in the required format to the calling application, by way way of the callback.

However for the basic implementation of accessing the note via a generated URL, the calling application really does not need to receive any call-back after Joplin has been called with all necessary parameters to identify and load the target resource, and to take focus in the OS.

@atdnorth
Copy link

@arnoldoree Yes, this is standard functionality in many office/productivity-styled OSX apps. I think that is why so many people have requested it to be added to Joplin. As such, Joplin allows Markdown links but those only provide functionality within Joplin itself (e.g. intra application links). If you consider an OSX app like "Hook" which allows one to group a series of heterogenous calllback links together (from different applications and even files), it is easy to understand how callblack links can improve productivity.

And just to clarify once again, when clicking the callback link in let's say DevonThink or OmniFocus, the link should simply open the document in Joplin, just as clicking a standard URL link will open the href in the web browser. I personally have never had a use case where there was a need for the calling application to receive a calllback from Joplin. i would be curious if other peoplle had examples of such, but my guess is that most people simply want the basic functionality. Thanks so much for working on this. It will be a valuable feature.

@msbentley
Copy link

From the linux perspective, yes, just a way to pass a parameter to Joplin (running or not) to open at a specific note given a URI would be great. Then I can set up a x-scheme-handler so that all joplin:// links, system-wide, open a specific note.

@ghost

This comment has been minimized.

@arnoldoree

This comment has been minimized.

@laurent22

This comment has been minimized.

@arnoldoree

This comment has been minimized.

@roman-r-m

This comment has been minimized.

@arnoldoree

This comment has been minimized.

@roman-r-m

This comment has been minimized.

@arnoldoree

This comment has been minimized.

@roman-r-m

This comment has been minimized.

@arnoldoree

This comment has been minimized.

@laurent22

This comment has been minimized.

@arnoldoree

This comment has been minimized.

@sirius-fan
Copy link

This is an awesome feature. But, I did not find it in the latest release, is it already available ? When will it be released ?

@roman-r-m
Copy link
Collaborator

Should be open, was closed by mistake.

@roman-r-m roman-r-m reopened this Oct 14, 2021
@roman-r-m
Copy link
Collaborator

@laurent22 there's still mobile to be implemented, shall we keep this open for now?
And also CLI but not sure if it's possible at all to support callback URLs for the CLI app.

@laurent22
Copy link
Owner Author

That's true, it could be supported on mobile so let's re-open.

@laurent22 laurent22 reopened this Oct 16, 2021
@laurent22 laurent22 removed the desktop All desktop platforms label Oct 16, 2021
adarsh-sgh added a commit to adarsh-sgh/joplin that referenced this issue Nov 12, 2021
commit 5cd4537
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 17:29:13 2021 +0000

    Server: Rename "ReadOnly" mode to "ReadAndClear" to avoid any confusion

commit ec8b9b8
Author: Kenichi Kobayashi <[email protected]>
Date:   Fri Nov 12 02:28:32 2021 +0900

    Desktop: Fixes laurent22#5694: Sync-scroll support for HTML notes (laurent22#5695)

commit 4bfb4db
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 16:36:43 2021 +0000

    Server: Fixed S3 connection string record in db

commit 4fc3bcb
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 16:32:34 2021 +0000

    Server: Fixed S3 storage connection and improved connectiob checks

commit 01826d9
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 16:31:37 2021 +0000

    ignore files

commit 73137cf
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 16:12:46 2021 +0000

    Server: Hide credentials from the log

commit b58ea0f
Author: Helmut K. C. Tessarek <[email protected]>
Date:   Thu Nov 11 10:50:15 2021 -0500

    Desktop: Add shortcut for bulleted list (laurent22#5698)

    Ref: https://discourse.joplinapp.org/t/shortcut-for-lists/21646

commit d7e0877
Author: Kenichi Kobayashi <[email protected]>
Date:   Fri Nov 12 00:43:32 2021 +0900

    Desktop: Resolves laurent22#4827, Resolves laurent22#5652: Fixed and improve laggy scroll in text editor (laurent22#5606)

commit f495db1
Author: Kenichi Kobayashi <[email protected]>
Date:   Fri Nov 12 00:33:37 2021 +0900

    Desktop: Sort Order Buttons and Per-Notebook Sort Order (laurent22#5437)

commit e4d5e9c
Author: Kenichi Kobayashi <[email protected]>
Date:   Fri Nov 12 00:31:20 2021 +0900

    Desktop: Fixes laurent22#5582: Currently opened note is not updated after sync (5582) (laurent22#5711)

commit 72f336a
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 15:24:21 2021 +0000

    Server v2.6.8

commit dfa5f8b
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 15:21:27 2021 +0000

    Server: Fixed S3 configuration

commit 3cdbd6d
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 14:44:06 2021 +0000

    Server v2.6.7

commit c6dec0a
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 14:40:23 2021 +0000

    Server: Added command to test a storage connection

commit 4879edc
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 14:06:27 2021 +0000

    Server v2.6.6

commit 005f720
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 11 13:59:05 2021 +0000

    Server: Added command to migrate content to different storage

commit 725c79d
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 10 15:40:32 2021 +0000

    Desktop: Fixed button to upgrade a master key

commit 0de6e9e
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 10 14:47:26 2021 +0000

    All: Fixed issue that could cause application to needlessly lock the sync target

commit 7c3785e
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 10 12:51:41 2021 +0000

    Doc: Update privacy policy

commit 5c2a0ed
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 10 12:20:43 2021 +0000

    Doc: Update privacy policy

commit fc64c82
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 10 12:08:10 2021 +0000

    Server v2.6.5

commit 08f420c
Merge: d76646a cc23a8b
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 10 12:07:32 2021 +0000

    Merge branch 'dev' into release-2.6

commit cc23a8b
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 16:12:29 2021 +0000

    Server v2.6.4

commit 9ffa29f
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 10 12:03:45 2021 +0000

    Chore: Add tests for storage driver loading

commit 7431da9
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 10 11:48:06 2021 +0000

    Server: Lazy-load storage drivers

commit 4deeed0
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 18:33:28 2021 +0000

    Desktop, Mobile: Fixes laurent22#5687: Fixed issue with parts of HTML notes not being displayed in some cases

commit f8d9601
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 17:49:05 2021 +0000

    Tools: Restored HTML to ENEX tests that had been deleted in a refactoring

commit 89179c2
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 16:42:50 2021 +0000

    Desktop, Cli: Add support for more style of highlighted texts when importing ENEX files

commit d76646a
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 16:12:29 2021 +0000

    Server v2.6.4

commit 485c0d0
Author: Laurent <[email protected]>
Date:   Tue Nov 9 16:05:42 2021 +0000

    Server: Allow storing item content in database, filesystem or S3 (depending on config) (laurent22#5602)

commit 6b31609
Author: agerardin <[email protected]>
Date:   Tue Nov 9 10:50:50 2021 -0500

    Plugins: Allow posting messages from plugin to webview (laurent22#5569)

commit 200ba85
Author: Kenichi Kobayashi <[email protected]>
Date:   Wed Nov 10 00:47:25 2021 +0900

    Deskop: Fixes flickering when switching notes while the Note Search Bar is visible (laurent22#5548)

commit 7b3ad32
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 15:28:38 2021 +0000

    Update translations

commit 3745cd7
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 15:26:45 2021 +0000

    Tools: Do not process context when running build-translation tool

commit 920f2d9
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 13:49:20 2021 +0000

    Revert "Update translations"

    This reverts commit f800ca0.

    Reverting for now due to some translations being incorrectly marked as
    fuzzy.

commit f800ca0
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 13:16:09 2021 +0000

    Update translations

commit 33be306
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 13:14:41 2021 +0000

    Tools: Fixed missing translations when running build-translation tool

commit 3782255
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 9 12:20:07 2021 +0000

    Tools: Fixed build-translation script to handle .ts and .tsx files directly

commit 0ab2352
Author: Laurent <[email protected]>
Date:   Mon Nov 8 17:10:33 2021 +0000

    Tools: Detect missing translation strings on CI (laurent22#5688)

commit 7525661
Author: Laurent Cozic <[email protected]>
Date:   Mon Nov 8 15:38:44 2021 +0000

    Security: Ensure Markdown links that contain single quotes are correctly escaped

commit b328094
Author: Helmut K. C. Tessarek <[email protected]>
Date:   Mon Nov 8 10:30:18 2021 -0500

    update en_US.po

commit 4f0f1af
Author: Helmut K. C. Tessarek <[email protected]>
Date:   Mon Nov 8 10:22:08 2021 -0500

    Update translations

commit 021ce14
Author: Laurent Cozic <[email protected]>
Date:   Mon Nov 8 15:21:20 2021 +0000

    Server v2.6.3

commit c4017e5
Author: Laurent Cozic <[email protected]>
Date:   Mon Nov 8 10:00:11 2021 +0000

    Fixed a few strings

commit ec2c174
Author: Laurent Cozic <[email protected]>
Date:   Sun Nov 7 17:36:48 2021 +0000

    Tools: Fixed package version numbers

commit 3e5ad0a
Author: Laurent Cozic <[email protected]>
Date:   Sun Nov 7 16:41:39 2021 +0000

    Desktop, Cli: Fixes laurent22#5653: Long resource filenames were being incorrectly cut

commit 05e390d
Author: Laurent Cozic <[email protected]>
Date:   Sun Nov 7 15:41:04 2021 +0000

    Tools: Fixed build-translation script

commit 31ce0f4
Author: Laurent Cozic <[email protected]>
Date:   Sun Nov 7 11:55:34 2021 +0000

    Tools: Show more info in IOS release script

commit d19551b
Author: Laurent Cozic <[email protected]>
Date:   Sun Nov 7 11:55:11 2021 +0000

    Chore: Set correct iOS version ID

commit dacd697
Author: Laurent Cozic <[email protected]>
Date:   Sun Nov 7 11:53:39 2021 +0000

    iOS: Fixes laurent22#5671: Fixed iOS 12 crash that prevents the app from starting

commit 70d5c7a
Author: Laurent Cozic <[email protected]>
Date:   Fri Nov 5 12:17:05 2021 +0000

    Server: Set resource content size when viewing published note

commit 42caab6
Author: Daniel Bretoi <[email protected]>
Date:   Sat Nov 6 21:32:18 2021 -0700

    Doc: CLI: update to include local filesystem sync (laurent22#5684)

    * terminal doc update to include local filesystem sync

    * fix typo

commit 01b63ad
Author: NiceYoyo <[email protected]>
Date:   Sun Nov 7 05:30:04 2021 +0100

    All: Translation: Update de_DE.po (laurent22#5682)

    * Update de_DE.po

    * Update de_DE.po

commit ae4013d
Author: felipeviggiano <[email protected]>
Date:   Sun Nov 7 01:29:38 2021 -0300

    All: Translation: Update pt_BR.po (laurent22#5680)

    * Updates on pt_BR.po file

    * Updates on pt_BR.po file

commit 298e85f
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 4 16:43:34 2021 +0000

    iOS: Set min supported iOS version to 13.0

commit 9e1cb9d
Author: Laurent Cozic <[email protected]>
Date:   Thu Nov 4 12:49:51 2021 +0000

    Server: Immediately ask user to set password after Stripe checkout

commit 373c041
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 17:39:30 2021 +0000

    Doc: Fixed H3 header size

commit af19865
Author: Laurent <[email protected]>
Date:   Wed Nov 3 16:24:40 2021 +0000

    All, Server: Add support for sharing notes when E2EE is enabled (laurent22#5529)

commit a0d2304
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 15:20:17 2021 +0000

    Migration can be null

commit 7ad73df
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 15:18:20 2021 +0000

    Server: Display latest migration name after auto-migration

commit ce5c5d6
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 14:00:16 2021 +0000

    Server: Disable mailer service if no-reply email is not set

commit 8c6d78e
Merge: a65c424 e6d3396
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 12:55:28 2021 +0000

    Merge branch 'dev' into release-2.6

commit a65c424
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 12:55:01 2021 +0000

    Server v2.6.2

commit e6d3396
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 12:54:08 2021 +0000

    lock files

commit 190550f
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 12:53:25 2021 +0000

    Tools: Fixed server tests

commit 030b18d
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 12:27:39 2021 +0000

    Desktop release v2.6.1

commit f1bfcfd
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 12:27:28 2021 +0000

    Server v2.6.1

commit 47a31c4
Author: Laurent <[email protected]>
Date:   Wed Nov 3 12:26:26 2021 +0000

    All, Server: Add support for faster built-in sync locks (laurent22#5662)

commit 630a400
Author: Kenichi Kobayashi <[email protected]>
Date:   Wed Nov 3 21:10:46 2021 +0900

    Desktop: Resolves laurent22#2242: Implements Sync-Scroll for Markdown Editor and Viewer (laurent22#5512)

commit 725abbc
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 11:44:43 2021 +0000

    Update website

commit 84ec845
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 11:34:14 2021 +0000

    CLI v2.6.1

commit 5892a06
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 11:18:03 2021 +0000

    Releasing sub-packages

commit cb26ab4
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 11:15:51 2021 +0000

    Tools: Trying to fix Lerna publishing with automation token

commit 74fcd47
Author: Laurent Cozic <[email protected]>
Date:   Wed Nov 3 11:10:06 2021 +0000

    Releasing sub-packages

commit c7406f3
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 2 20:56:26 2021 +0000

    Android 2.6.1

commit d22a29e
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 2 15:25:42 2021 +0000

    ios-v12.5.1

commit bcd568a
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 2 20:07:13 2021 +0000

    Setup new release 2.6

commit 66e79cc
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 2 16:33:53 2021 +0000

    Mobile: Upgraded React Native from 0.64 to 0.66

commit 08ee2b2
Merge: b5d792c 57b8aa1
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 2 14:47:19 2021 +0000

    Merge branch 'release-2.5' into dev

commit 57b8aa1
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 2 14:46:52 2021 +0000

    Server v2.5.10

commit b5d792c
Author: Laurent Cozic <[email protected]>
Date:   Tue Nov 2 12:51:59 2021 +0000

    Server: Improved env variable handling to make it self documenting and enforce type checking

commit 3704413
Author: Laurent Cozic <[email protected]>
Date:   Mon Nov 1 19:20:36 2021 +0000

    Server: Improved logging and rendering of low level middleware errors

commit c491741
Author: Laurent Cozic <[email protected]>
Date:   Mon Nov 1 07:57:10 2021 +0000

    Doc: Added forum assets

commit b80242d
Author: Laurent Cozic <[email protected]>
Date:   Mon Nov 1 07:41:36 2021 +0000

    Desktop release v2.5.10

commit 59ea52f
Merge: 3813b10 1eda835
Author: Laurent Cozic <[email protected]>
Date:   Mon Nov 1 07:41:18 2021 +0000

    Merge branch 'dev' into release-2.5

commit 1eda835
Author: Laurent Cozic <[email protected]>
Date:   Mon Nov 1 00:52:32 2021 +0000

    Desktop release v2.5.9

commit 6012783
Author: Laurent Cozic <[email protected]>
Date:   Mon Nov 1 07:38:06 2021 +0000

    Desktop: Fixed crash on certain Linux distributions when importing or exporting a file

    Ref: https://discourse.joplinapp.org/t/20702/37

commit 3813b10
Author: Laurent Cozic <[email protected]>
Date:   Mon Nov 1 00:52:32 2021 +0000

    Desktop release v2.5.9

commit c5569ef
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 18:33:06 2021 +0000

    All: Fixed potential infinite loop when Joplin Server session is invalid

commit 401f1b1
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 18:31:40 2021 +0000

    Tools: Fixed tests when using Joplin Server as sync target

commit 99ea4b7
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 18:29:47 2021 +0000

    Server: Fixed issue that could cause server to return empty items in some rare cases

commit 22d472d
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 17:36:54 2021 +0000

    Tools: Added testing command to create many items in parallel

commit ab86812
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 11:39:12 2021 +0000

    Update website

commit b678d20
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 11:25:07 2021 +0000

    Android 2.5.5

commit 1f96eb7
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 10:38:11 2021 +0000

    Lock files

commit e453cd3
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 10:35:26 2021 +0000

    Tools: Build app before releasing Android app

commit 232128c
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 10:29:15 2021 +0000

    Android 2.5.4

commit dbdb82d
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 10:05:33 2021 +0000

    Desktop release v2.5.8

commit 14ddf40
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 10:03:37 2021 +0000

    Fixed French translation

commit 4128be9
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 31 09:32:08 2021 +0000

    Mobile: Capitalise first word of sentence in beta editor

commit 8de9032
Author: Brett Bender <[email protected]>
Date:   Sat Oct 30 10:00:01 2021 -0700

    Deskop: Fixed shortcut to focus the note body (laurent22#5597)

commit 0b01b5b
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 30 17:51:19 2021 +0100

    Desktop, Mobile: Resolves laurent22#5593: Enable safe mode for Markdown editor too

commit aa3cbbd
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 30 17:47:16 2021 +0100

    Desktop, Mobile: Fixes laurent22#5593: Do not render very large code blocks to prevent app from freezing

commit 2d1a6da
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 30 15:20:26 2021 +0100

    Revert "Desktop: Upgrade to Electron 15.1.3"

    No longer necessary because it was to try to fix this bug, but it
    doesn't fix it:

    https://discourse.joplinapp.org/t/20702/32

    This reverts commit 9704b29.

commit 365e152
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 30 11:51:40 2021 +0100

    Mobile: Add padding around beta text editor

commit 6393996
Author: Andreas Deininger <[email protected]>
Date:   Sat Oct 30 11:45:02 2021 +0200

    Doc: Fixing typos (laurent22#5644)

commit f7a18ba
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 30 10:37:56 2021 +0100

    Server: Add unique constraint on name and owner ID of items table

    In theory, the server enforces uniquness because when doing a PUT
    operation it either creates the items if it doesn't exist, or overwrite
    it. However, there's race condition that makes it possible for multiple
    items with the same name being created per user. So we add this
    constraint to ensure that any additional query would fail (which can be
    recovered by repeating the request).

commit bb06e56
Author: Laurent Cozic <[email protected]>
Date:   Fri Oct 29 18:47:11 2021 +0100

    Added better-sqlite database driver, although we cannot use it for now

commit 4e1f315
Author: Laurent Cozic <[email protected]>
Date:   Fri Oct 29 12:12:30 2021 +0100

    Desktop release v2.5.7

commit 9704b29
Author: Laurent Cozic <[email protected]>
Date:   Fri Oct 29 12:11:25 2021 +0100

    Desktop: Upgrade to Electron 15.1.3

commit 2133193
Author: Laurent Cozic <[email protected]>
Date:   Thu Oct 28 23:09:16 2021 +0100

    Android 2.5.3

commit 7d70dea
Author: Laurent Cozic <[email protected]>
Date:   Thu Oct 28 22:27:47 2021 +0100

    Desktop release v2.5.6

commit e247be1
Author: Laurent Cozic <[email protected]>
Date:   Thu Oct 28 22:25:27 2021 +0100

    Desktop: Fixed default migration logic

commit 9704e75
Author: Laurent Cozic <[email protected]>
Date:   Thu Oct 28 21:23:40 2021 +0100

    Android 2.5.2

commit e4403d4
Author: Laurent Cozic <[email protected]>
Date:   Thu Oct 28 20:56:40 2021 +0100

    Desktop release v2.5.5

commit 251400c
Author: Laurent Cozic <[email protected]>
Date:   Thu Oct 28 20:44:25 2021 +0100

    Server v2.5.9

commit 6c6e2a6
Merge: 3359ea3 4a2af32
Author: Laurent Cozic <[email protected]>
Date:   Thu Oct 28 20:43:14 2021 +0100

    Merge branch 'dev' into release-2.5

commit 4a2af32
Author: Laurent Cozic <[email protected]>
Date:   Thu Oct 28 20:41:46 2021 +0100

    Server: Remove session expiration for now

commit 9d88324
Author: milotype <[email protected]>
Date:   Thu Oct 28 18:23:52 2021 +0200

    All: Translation: Update hr_HR.po (laurent22#5640)

    … this time with Poedit ;-)

commit e0a12c7
Author: Daeraxa <[email protected]>
Date:   Thu Oct 28 17:20:44 2021 +0100

    Doc: Add section about restoreNoteRevision command to FAQ for note restoration (laurent22#5638)

    * docs: add section about restoreNoteRevision command to restore accidentally deleted notes

    * docs:add link to wiki post

commit 3359ea3
Author: Laurent Cozic <[email protected]>
Date:   Thu Oct 28 17:07:44 2021 +0100

    Server v2.5.8

commit 2cbcfa5
Author: Laurent Cozic <[email protected]>
Date:   Thu Oct 28 17:06:16 2021 +0100

    Slow down migration

commit 0a7fdac
Author: Laurent Cozic <[email protected]>
Date:   Wed Oct 27 19:40:32 2021 +0100

    Server v2.5.7

commit a753429
Author: Laurent Cozic <[email protected]>
Date:   Wed Oct 27 19:38:45 2021 +0100

    Server: Fixed items.owner_id migration

commit dca13b3
Author: Laurent Cozic <[email protected]>
Date:   Wed Oct 27 19:29:54 2021 +0100

    Server: Moved CLI commands to separate files

commit 5c1cef8
Author: Nicholas Axel <[email protected]>
Date:   Thu Oct 28 01:15:38 2021 +0700

    All: Translation: Update id_ID.po (laurent22#5625)

    * Updated Indonesian

    Fixed some translations
    Added some missing translations

    * Add files via upload

    * Add files via upload

    * Add files via upload

commit 9ba90b5
Author: Laurent Cozic <[email protected]>
Date:   Wed Oct 27 16:39:45 2021 +0100

    Server: Fixed Stripe portal page redirection

commit f1c4d35
Author: Laurent Cozic <[email protected]>
Date:   Wed Oct 27 16:31:19 2021 +0100

    Server: Fixed owner_id migration for SQLite

commit b0e3e1b
Author: Laurent Cozic <[email protected]>
Date:   Wed Oct 27 16:21:21 2021 +0100

    Server v2.5.6

commit b655f27
Author: Laurent Cozic <[email protected]>
Date:   Wed Oct 27 16:18:42 2021 +0100

    Server: Added item owner ID, and allow disabling db auto-migrations

commit 0ada1df
Author: Laurent Cozic <[email protected]>
Date:   Tue Oct 26 12:34:22 2021 +0100

    Server: Expire sessions after 12 hours

commit 134bc91
Author: theCollectiv <[email protected]>
Date:   Tue Oct 26 13:01:12 2021 +0200

    Doc: Mention that drag and drop can be used to create a link to a note (laurent22#5629)

commit 33249ca
Author: Laurent Cozic <[email protected]>
Date:   Mon Oct 25 19:46:45 2021 +0100

    All: Improved handling of expired sessions when using Joplin Server

commit ace1118
Author: Laurent Cozic <[email protected]>
Date:   Mon Oct 25 17:49:38 2021 +0100

    All: Improved handling of expired sessions when using Joplin Server

commit b497177
Author: Laurent Cozic <[email protected]>
Date:   Mon Oct 25 17:36:40 2021 +0100

    Server: Delete all sessions when a password is changed or reset

commit 82227b2
Author: Laurent Cozic <[email protected]>
Date:   Mon Oct 25 16:49:21 2021 +0100

    Doc: Improved caching of asset URLs

commit 2d85363
Author: Laurent Cozic <[email protected]>
Date:   Mon Oct 25 16:24:14 2021 +0100

    Update website

commit 6714b37
Author: Laurent Cozic <[email protected]>
Date:   Mon Oct 25 16:22:16 2021 +0100

    Doc: Added Hosting.de sponsor

commit 1a90ad3
Author: Piotr Kowalski <[email protected]>
Date:   Mon Oct 25 13:31:01 2021 +0200

    Server: Fixed display of latest migration in startup log (laurent22#5627)

commit 17cf9b3
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 24 19:13:56 2021 +0100

    Tools: Improved desktop app runForTesting script

commit 22e5c3a
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 24 19:12:25 2021 +0100

    Desktop: Fixed Goto Anything scrolling for long lists

commit 72c1235
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 24 14:00:44 2021 +0100

    All: Improved Joplin Server configuration check to better handle disabled accounts

commit 2db886a
Author: Roman Musin <[email protected]>
Date:   Sun Oct 24 13:02:37 2021 +0100

    Doc: Update node version in BUILD.md (laurent22#5616)

    * Update node version in BUILD.md

    Apparently node 16.0.0 may not work, see laurent22#5608

    * Update BUILD.md

    * Change node 16.11 -> node 14

commit 2f09f88
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 24 12:22:49 2021 +0100

    Server: Run oversized account task more frequently

commit bc5a853
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 24 12:17:59 2021 +0100

    Server: Improved task service log entries

commit 643bddf
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 24 11:37:16 2021 +0100

    Added comments

commit d4a0322
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 23 21:58:53 2021 +0100

    Server v2.5.5

commit 82f7052
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 23 21:57:45 2021 +0100

    Tools: Fixing server Docker image build

commit cbbaad9
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 23 20:10:04 2021 +0100

    Server v2.5.4

commit 4659d57
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 23 20:08:56 2021 +0100

    Tools: Fixing server Docker image build

commit 46a4ed0
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 23 18:23:45 2021 +0100

    Server v2.5.3

commit 56454f4
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 23 18:06:14 2021 +0100

    Doc: Updated Font Awesome and added link to Mastodon feed

commit 169b585
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 23 17:51:44 2021 +0100

    Server: Added tool to delete old changes

commit a75eba1
Author: WestfalenYeti <[email protected]>
Date:   Fri Oct 22 16:21:39 2021 +0200

    Linux: Fixes laurent22#5568: Adds 'sort' to pre-release version list (laurent22#5588)

    Added a 'sort by version number' to the handling of the version list when prerelease parameter ist set.
    (Assumes the latest pre-release version has a highest version number)

commit 375214a
Author: sleepntsheep <[email protected]>
Date:   Fri Oct 22 00:56:40 2021 +0700

    All: Translation: Update th_TH.po (laurent22#5609)

    Co-authored-by: sleepntsheep <[email protected]>

commit 2a004dd
Author: Helmut K. C. Tessarek <[email protected]>
Date:   Wed Oct 20 11:56:03 2021 -0400

    All: Translation: Update da_DK.po (thanks ERYpTION)

commit 843e407
Author: Laurent Cozic <[email protected]>
Date:   Tue Oct 19 17:51:15 2021 +0100

    Doc: Added complete logo in different formats

commit 04b8204
Author: Laurent Cozic <[email protected]>
Date:   Tue Oct 19 12:53:11 2021 +0100

    android-2.5.1

commit 0188824
Merge: 6eced7e 72db8e4
Author: Laurent Cozic <[email protected]>
Date:   Tue Oct 19 11:13:38 2021 +0100

    Merge branch 'dev' into release-2.5

commit 72db8e4
Author: Laurent Cozic <[email protected]>
Date:   Mon Oct 18 12:37:25 2021 +0100

    All: Added mechanism to migrate default settings to new values

commit 7d62df8
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 17 19:08:34 2021 +0100

    Desktop: Improved master password state handling in Encryption screen

commit 6eced7e
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 17 18:52:35 2021 +0100

    Desktop release v2.5.4

commit 8d09ed3
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 17 18:50:56 2021 +0100

    Fixed package path

commit b891915
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 17 17:45:10 2021 +0100

    Desktop release v2.5.3

commit 1406d97
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 17 17:20:59 2021 +0100

    Mobile: Fixes laurent22#5585: Fixed logic of setting master password in Encryption screen

commit a5560a6
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 17 16:13:12 2021 +0100

    Fixed mobile package

commit 21a7149
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 17 14:54:48 2021 +0100

    Fixed mobile build

commit 176d328
Author: Laurent Cozic <[email protected]>
Date:   Sun Oct 17 14:50:35 2021 +0100

    ignore files

commit 6bcd801
Author: Laurent Cozic <[email protected]>
Date:   Sat Oct 16 12:19:19 2021 +0100

    Fixed interface

commit 5e6e1bf
Author: Kingsley Yung <[email protected]>
Date:   Sat Oct 16 19:19:53 2021 +0800

    Cli: Fixes laurent22#5341: Ignore newline between quotes while spliting batch (laurent22#5540)

commit 1d46d9f
Author: Kenichi Kobayashi <[email protected]>
Date:   Sat Oct 16 19:44:02 2021 +0900

    Desktop: Resolves laurent22#4827: Laggy scrolling in Markdown viewer (laurent22#5496)

commit 6879481
Author: Roman Musin <[email protected]>
Date:   Sat Oct 16 10:07:41 2021 +0100

     Desktop: Resolves laurent22#5168: Add support for callback URLs (laurent22#5416)

commit 4322acc
Author: Filip Stanis <[email protected]>
Date:   Sat Oct 16 10:04:53 2021 +0100

    Doc: Update link to React Native docs (laurent22#5570)

commit 2acd55e
Author: Caleb John <[email protected]>
Date:   Sat Oct 16 01:59:37 2021 -0700

    Desktop, Cli: Resolves laurent22#5224: Add Markdown + Front Matter exporter/importer (laurent22#5465)
@dpickett
Copy link

dpickett commented Dec 8, 2021

would it be possible / welcomed to link to a specific resource?

Effectively what I want to do is manage my attachments in joplin and link to them via obsidian. I'd like to have the ability to directly embed an image using a joplin:// url so that it can interop among my devices.

@roman-r-m
Copy link
Collaborator

would it be possible / welcomed to link to a specific resource?

Effectively what I want to do is manage my attachments in joplin and link to them via obsidian. I'd like to have the ability to directly embed an image using a joplin:// url so that it can interop among my devices.

I'm not sure how you expect this to work. These URL, when called, trigger actions within Joplin, like opening a note or a notebook, but I don't think there's a way to return data (e.g. image) back to the caller

@benlau
Copy link
Sponsor

benlau commented Jan 16, 2022

This was implemented in desktop, so only mobile is needed now.

How about the callback to create a new note? Is it implemented? I have tried Joplin 2.6.10 with the following link:

joplin://x-callback-url/createNote?title=NOTE_TITLE&body=NOTE_BODY

But it just launch Joplin without creating any new note in Mac.

@roman-r-m
Copy link
Collaborator

How about the callback to create a new note? Is it implemented?

No, currently there's only openNote/openFolder/openTag

@drewmoseley
Copy link

Hi all. Thanks for this feature. I look forward to using it heavily. I'm not sure how to access the URLs though. I generally run both Ubuntu and MacOS. I get the "external link" from the right-click menu and add it to calendar entries and todo list items. But then when I click them I don't get the app launched and the right note selected.

They work properly from the command line in Ubuntu using "xdg-open "

When I click in a google calendar invite it simply opens up a blank tab to the URL "about:blank#blocked". Is there a setting I need to change?

When I click a link in my ToDo manager (https://www.rememberthemilk.com/) the app window simply goes blank white and I have to exit and reenter. The web version of the ToDo manager does the same thing as Google calendar.

Finally when I click on the link on my iPhone, the Joplin app is launched but the note is not selected.

Thanks for any advice in resolving these issues.

@roman-r-m
Copy link
Collaborator

When I click in a google calendar invite it simply opens up a blank tab to the URL "about:blank#blocked". Is there a setting I need to change?

This looks like some kind of permission issue, possibly in Chrome. How did you install Joplin btw? It works for me in Firefox with Joplin installed via AppImage.
I copy the link, paste in into Firefox, press enter and get a prompt to select the app with Joplin being the default.

Finally when I click on the link on my iPhone, the Joplin app is launched but the note is not selected.

I'm actually surprised this works at all, I was sure we only have link handling on desktop atm

@drewmoseley
Copy link

I used the "recommended" approach for installing in my Ubuntu system. ie

wget -O - https://raw.githubusercontent.com/laurent22/joplin/dev/Joplin_install_and_update.sh | bash

And if I copy/paste the full URI into the address bar of either chrome or firefox (on Ubuntu any way) I see now that does work. It just seems to be using "clickable links" that does not want to work.

Regarding mobile, I thought it was reported above as not working but I tried anyway and that's the behavior I saw. Just consider it a report of an issue and nothing urgent.

@drewmoseley
Copy link

And when I manage to get a clickable link in Firefox with Google Calendar, I right click and do "Open in New Tab" and it opens with an "Invalid URL" error to the URL "about:invalid#zSoyz"

@roman-r-m
Copy link
Collaborator

I am not sure why this is happening for you.

I got it working in google calendar:

  • created a new task
  • pasted the link into the description
  • used the link button to convert text into a link
  • right-click - open in new tab
  • I got popup message "Allow calendar.google.com to open joplin link", I press Select Application and there's Joplin there.
  • Select Joplin and it becomes active and switches to the note.

@drewmoseley
Copy link

Very odd. That's exactly what I did. But for some reason the "joplin://" URIs are not clickable but "http://". I get the same behavior in Chrome and Firefox(even in safe mode). Not sure if there is some google calendar setting I need to change. I'll keep banging on it.

@laurent22
Copy link
Owner Author

Let's close this one as it was implemented in #5416. If it gets implemented on mobile we could create a new issue.

@GonzRon
Copy link

GonzRon commented Aug 8, 2023

is there a ticket for android yet?

@roman-r-m
Copy link
Collaborator

is there a ticket for android yet?

Not that I know of. It was included in another pr but it never got merged.

@GonzRon
Copy link

GonzRon commented Aug 8, 2023

Created #8639

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Feature requests and code enhancements mobile All mobile platforms spec Fully developed spec that can serve as a starting point for a project
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants