-
Notifications
You must be signed in to change notification settings - Fork 20
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
Open Synthetics recorder directly from kibana via link #77
Conversation
I like this, curious to hear what @drewpost and @liciavale would think about it, as we haven't really discussed/refined for this functionality AFAIK. The happy path seems really nice. When we say "it will throw an error" if the protocol isn't present, what does that end up looking like on the Kibana side? Something we can catch and toast about? |
package.json
Outdated
@@ -48,7 +48,14 @@ | |||
"main": "build/electron.js" | |||
}, | |||
"mac": { | |||
"icon": "public/elastic.png" | |||
"icon": "public/elastic.png", | |||
"category": "elastic.synthetics.recorder" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove this, Synthetics should be part of devtools category (https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8) and we will have to do this while notarizing the app #51
package.json
Outdated
"protocols": { | ||
"name": "ElasticSyntheticsRecorder-protocol", | ||
"schemes": [ | ||
"ElasticSyntheticsRecorder" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please keep it URL spec compatible like keeping it lower case.
I agree with @justinkambic's comment, how does it look to the user if they don't have the script recorder installed? |
@paulb-elastic @justinkambic so that is UI problem, i mean in kibana, it won't break anything, if you click the link , it will just show standard error there are many ways we can solve this on the UI, easiest would be to show a dismissable information first time, asking user to download the recorder , we can use EUI tour component to guide the user Alternatively it's just a standard link, we can capture the error, and show our own dialog with info to download the recorder first. Essentially, that has nothing to do with this PR, there isn't much we can do here. |
💚 Build Succeeded
Expand to view the summary
Build stats
Test stats 🧪
🤖 GitHub commentsTo re-run your PR in the CI, just comment with:
|
As discussed with @shahzad31 on Slack, I'll be picking this issue up as he's busy at the moment and I'll be working on the recorder more often. |
8915a85
to
df8a462
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've looked into it a bit further and haven't found an OS-specific reason we can't merge this, so LGTM.
As mentioned on slack by @justinkambic we'll wait until we have heard back from the security team on whether this can impact notarization:
|
I can't possibly think why it will impact notarisation? Did you hear back @lucasfcosta , let's push this otherwise, then we can see how we want to use it in Kibana. |
@shahzad31 I've pinged the security team about this subject this morning, and will open a consulting request on their repo as I was instructed. I'll keep this PR up-to-date with their responses and with the issue once it's there. EDIT: Issue opened on their repo for consultancy (private repo). The link will appear below for those with permissions. |
Merging as per the security team's approval. Let's make sure we do another security review before passing data from Kibana to the recorder through the link. |
Summary
This PR adds the ability to open Recorder directly from Kibana (or any other website) through a link using the
elastic-synthetics-recorder-protocol
.You could, for example, use the following
EuiLink
to open the recorder:For now, there is no way to determine that the recorder is installed or not. Therefore, users which do not have the recorder installed will see the following standard error:
Below is a gif of the link working:
How to test this PR
npm run package
dmg
and install the.app
intoApplications
.example-folder
and add the following HTML file asindex.html
to it:npx http-server example-folder
localhost
URL in which you're serving your file and click theOpen recorder
link. The script recorder should open.