Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
b1220de
Removed redundant styles, changed icon and text for empty state
ron-rookout Mar 24, 2024
6d98d95
Changed colors, removed more styles
ron-rookout Mar 24, 2024
a5b0e2b
Corrections
ron-rookout Mar 24, 2024
2f289c6
Use Text component
ron-rookout Mar 25, 2024
3210678
Changed app name
ron-rookout Mar 25, 2024
90e5479
Added DT fonts
ron-rookout Mar 25, 2024
57b2fa1
Removed unused components
ron-rookout Mar 25, 2024
9c31286
Removed roboto typeface package
ron-rookout Mar 25, 2024
707b6d5
Color changes
ron-rookout Mar 25, 2024
b823c14
Style fixes
ron-rookout Mar 25, 2024
712b6a1
Changed close button color
ron-rookout Mar 25, 2024
983e073
Redesign EULA page
ron-rookout Mar 26, 2024
78a7436
Removed redundant class, fixed style instead
ron-rookout Mar 26, 2024
937569b
Changed icons
ron-rookout Mar 26, 2024
f0d61c4
Update dmg-background.png
ron-rookout Mar 26, 2024
ab07736
Removed irrelevant images
ron-rookout Mar 26, 2024
ef56c77
Fixed checkbox style
ron-rookout Mar 27, 2024
2a1868c
Change copy
ron-rookout Mar 27, 2024
6f96dcb
Removed unused file, changed names
ron-rookout Mar 28, 2024
33b19a0
Update deeplinks.ts
ron-rookout Mar 28, 2024
c4735c7
Readme and text corrections
ron-rookout Mar 28, 2024
c26cfc3
Added images, removed broken links
ron-rookout Mar 31, 2024
f63efed
Merge branch 'master' into dt-reskin
ron-rookout Mar 31, 2024
54a38ee
Merge branch 'master' into dt-reskin
ron-rookout Mar 31, 2024
f906361
Removed redundant dependencies
ron-rookout Apr 1, 2024
17f6d9d
Change DT related copy and icons
ron-rookout Apr 2, 2024
778b987
Merge branch 'master' into dt-reskin
ron-rookout Apr 25, 2024
fd8640e
Merge branch 'master' into dt-reskin
ron-rookout Jun 4, 2024
4efd50a
Restore DT branding
ron-rookout Jun 4, 2024
b05ec90
Removed EULA
ron-rookout Jun 4, 2024
330ec2a
Merge branch 'master' into dt-reskin
ron-rookout Jun 5, 2024
cbff791
Removed segment analytics
ron-rookout Jun 5, 2024
73ca654
Removed bugsnag
ron-rookout Jun 5, 2024
f1be492
Removed data collection checkbox
ron-rookout Jun 17, 2024
4476dd7
Removed a bit of unnecessary code
ron-rookout Jun 17, 2024
c2bd900
Update version
ron-rookout Jun 19, 2024
ac28c5a
Better regex
ron-rookout Jun 5, 2024
ae3f3c0
Moved CORS middleware to its own file
ron-rookout Jun 6, 2024
1239803
Added cache + small refactor
ron-rookout Jun 27, 2024
ded595e
Bump version
ron-rookout Jun 27, 2024
f57614c
Add debug option to skip dt verification
ron-rookout Jun 30, 2024
8f162ed
Formatting
ron-rookout Jul 16, 2024
a8a19ae
1st init only for creating a release
NoaAylonDyn Jul 23, 2024
6c78fb5
Merge pull request #1 from Rookout/desktop-app-first-release
NoaAylonDyn Jul 23, 2024
8b0ca07
fixed package.json for release
NoaAylonDyn Jul 23, 2024
69622c1
Merge pull request #2 from Rookout/desktop-app-first-release
NoaAylonDyn Jul 23, 2024
8f1b741
update version
NoaAylonDyn Jul 23, 2024
1f36efe
Merge pull request #3 from Rookout/desktop-app-first-release
NoaAylonDyn Jul 23, 2024
41e3db9
add the afterSign
NoaAylonDyn Jul 23, 2024
637719f
releases
NoaAylonDyn Jul 23, 2024
9cf8680
Merge pull request #4 from Rookout/desktop-app-first-release
NoaAylonDyn Jul 23, 2024
9c8ebb2
use m1 instead of EOL x86 in CI (#5)
ElDuderinos Jul 23, 2024
0de4b11
Update package.json version
NoaAylonDyn Jul 24, 2024
c3fe1d7
Merge pull request #6 from Rookout/desktop-app-first-release
NoaAylonDyn Jul 24, 2024
be7a000
Added 'Rosetta' for support wine in electron-builder
NoaAylonDyn Jul 24, 2024
8ae2c36
Merge branch 'master' of https://github.com/Rookout/dynatrace-desktop…
NoaAylonDyn Jul 24, 2024
3fb3c6b
Merge pull request #7 from Rookout/desktop-app-first-release
NoaAylonDyn Jul 24, 2024
a5832ab
Revert skip check option
ron-rookout Jul 25, 2024
72d0b89
Remove unused const
ron-rookout Jul 25, 2024
1486da5
Removed Rookout regex
ron-rookout Jul 25, 2024
70d83ed
Merge branch 'master' into dt-desktop-dt-cors
ron-rookout Jul 25, 2024
ef67b35
Merge pull request #8 from Rookout/dt-desktop-dt-cors
ron-rookout Jul 25, 2024
fcdd3fc
Merge branch 'master' of https://github.com/Rookout/dynatrace-desktop…
NoaAylonDyn Aug 4, 2024
fb3ec67
Merge pull request #9 from Rookout/dt-desktop-dt-reskin-remove-bugsnag
NoaAylonDyn Aug 6, 2024
6c2fe4b
Readded accidentally deleted handler for adding repos (#10)
ron-rookout Aug 15, 2024
c4ca9b4
change tooltip
FridmasterDyna Jan 27, 2025
ec0dfc4
bump version
FridmasterDyna Jan 27, 2025
ccf6d27
Merge pull request #11 from Rookout/APPOBS-4061-some-rename
FridmasterDyna Jan 27, 2025
740dd33
RK-20828 - change-log-file-name (#12)
dan505512 Mar 18, 2025
75eeab1
RK-20833 - [Snyk] Security upgrade express from 4.19.2 to 4.21.2 (#13)
ron-rookout Apr 28, 2025
3ff6d0d
RK-20835 - Fix snyk vulnerabilities 2025-05 (#14)
ron-rookout May 4, 2025
fd71922
Added missing types module (#15)
ron-rookout May 6, 2025
c822230
Changed default localhost origin for development
ron-rookout May 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@ references:
branches:
only: master


jobs:
publish:
macos:
xcode: "15.0.0"
resource_class: macos.x86.medium.gen2
resource_class: macos.m1.large.gen1
steps:
- run:
name: Install Rosetta 2
command: |
softwareupdate --install-rosetta --agree-to-license
- checkout
- restore_cache:
key: homebrew-cache-{{ arch }}-{{ .Environment.CACHE_VERSION }}-{{ checksum ".circleci/config.yml" }}
Expand Down Expand Up @@ -81,8 +86,12 @@ jobs:
version_validation:
macos:
xcode: "15.0.0"
resource_class: macos.x86.medium.gen2
resource_class: macos.m1.large.gen1
steps:
- run:
name: Install Rosetta 2
command: |
softwareupdate --install-rosetta --agree-to-license
- checkout
- run:
name: Validate version has no release yet
Expand All @@ -95,7 +104,7 @@ jobs:
- run:
name: Generate release notes
command: |
export EXPLOROOK_VERSION=$(node -e 'console.log(require("./package").version)') && curl -X POST https://github-enforcer.rookout.com/release -H "Content-Type: application/json" -H "X-Enforcer-Signature: $ENFORCER_SECRET" -d '{"repository":{"full_name":"Rookout/explorook"},"data":{"inner_version":"v'$EXPLOROOK_VERSION'","version_to_publish":"'$EXPLOROOK_VERSION'","component":"explorook","released_by":"CircleCI"}}'
export DYNATRACE_DESKTOP_APP_VERSION=$(node -e 'console.log(require("./package").version)') && curl -X POST https://github-enforcer.rookout.com/release -H "Content-Type: application/json" -H "X-Enforcer-Signature: $ENFORCER_SECRET" -d '{"repository":{"full_name":"Rookout/dynatrace-desktop-application"},"data":{"inner_version":"v'$DYNATRACE_DESKTOP_APP_VERSION'","version_to_publish":"'$DYNATRACE_DESKTOP_APP_VERSION'","component":"dynatrace-desktop-application","released_by":"CircleCI"}}'
workflows:
version: 2
publish-pipeline:
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ dist
.idea
.eslintcache
yarn-error.log

pkg
release-builds
installers

Expand Down
16 changes: 7 additions & 9 deletions DEVELOPING.MD
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
# Introduction
Rookout's Desktop App (previously known as "Explorook") is an open-source, [Electron](https://electronjs.org/) based desktop app used by Rookout's [web app](https://app.rookout.com) to extend its usability to the user's local filesystem.
Rookout's Desktop App uses a local http server to expose its API to Rookout's web debugger.
The API is protected by a self generated token.
Dynatrace's Desktop App (previously known as "Explorook" and "Rookout Desktop App") is an open-source, [Electron](https://electronjs.org/) based desktop app used by Rookout's [web app](https://app.rookout.com) to extend its usability to the user's local filesystem.
Dynatrace's Desktop App uses a local http server to expose its API to Rookout's web debugger (and in the future, Dynatrace Live Debugging web app).

# Security
Rookout's Desktop App is only accessible from localhost
Rookout's Desktop App only allows read-only access and only to folders the user specifies (and their subfolders)
Dynatrace's Desktop App is only accessible from localhost
Dynatrace's Desktop App only allows read-only access and only to folders the user specifies (and their subfolders)
Folders traversal are forbidden
Rookout's Desktop App does not send any information about the user's source code to any server
Dynatrace's Desktop App does not send any information about the user's source code to any server

Rookout's Desktop App spawns three processes (one main and two renderers):
The app spawns three processes (one main and two renderers):
1. [The main process](#The-main-process)
1. [The react web app](#The-react-web-app)
1. [An invisible worker window](#The-invisible-worker-window)
Expand All @@ -20,15 +19,14 @@ It helps the windows achieve functionalities they cannot access directly (e.g: d

# The react web app
Written in ``ES6``, and uses ``create-react-app``, The react app is the configuration window where the user can add, delete and manage its configured folders and other global settings.
[](/assets/explorook-main-window.gif)

# The invisible worker window
The invisible worker window runs the GraphQL server and manages all operations on repositories (CRUD operations and indexing)
The reason we open an invisible window (and not use the main process for that) is because the indexing job is cpu intensive and we cannot block the main process, as it blocks renderer processes as well ([reference](https://medium.com/actualbudget/the-horror-of-blocking-electrons-main-process-351bf11a763c))

# Security & Access
Because we listen on http://localhost:44512 (which is the graphql endpoint we spin), every website running on the client's machine has access to our API.
In order to restrict access for Rookout's web app only - we use [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
In order to restrict access for Rookout's and Dynatrace's web apps only - we use [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)

# Project initialization
1. run ``yarn`` in ``/src/webapp`` to install webapp dependencies
Expand Down
1 change: 0 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ WORKDIR /build

ADD package.json ./
ADD yarn.lock ./
ADD patches ./patches/

RUN yarn install
COPY . .
Expand Down
47 changes: 24 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,43 +4,44 @@
</a>
</p>

<h3 align="center">Rookout desktop app</h3>
<p align="center">
<a>
<img src="./assets/dynatrace_web.png" width="400" height="120" alt="Dynatrace Logo"/>
</a>
</p>

<h3 align="center">Dynatrace Desktop App</h3>

<p align="center">
The Rookout desktop app makes it easy to view local files in your browser.
The Dynatrace desktop app makes it easy to view local files in your browser.
</p>

## About
[![CircleCI](https://img.shields.io/circleci/build/github/Rookout/explorook.svg?style=flat-square)](https://circleci.com/gh/Rookout/explorook)
[![GitHub release](https://img.shields.io/github/release/rookout/explorook.svg?style=flat-square)](https://GitHub.com/Rookout/explorook/releases/)
[![Github all releases](https://img.shields.io/github/downloads/rookout/explorook/total.svg?style=flat-square)](https://GitHub.com/Rookout/explorook/releases/)
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg?style=flat-square)](https://GitHub.com//Rookout/explorook/graphs/commit-activity)
[![GitHub contributors](https://img.shields.io/github/contributors/rookout/explorook.svg?style=flat-square)](https://GitHub.com/Rookout/explorook/graphs/contributors/)
[![GitHub license](https://img.shields.io/github/license/rookout/explorook.svg?style=flat-square)](https://github.com/Rookout/explorook/blob/master/LICENSE)
[![Known Vulnerabilities](https://snyk.io/test/github/rookout/explorook/badge.svg?style=flat-square)](https://snyk.io/test/github/rookout/explorook)
[![CircleCI](https://img.shields.io/circleci/build/github/Rookout/dynatrace-desktop-application.svg?style=flat-square)](https://circleci.com/gh/Rookout/dynatrace-desktop-application)
[![GitHub release](https://img.shields.io/github/release/rookout/dynatrace-desktop-application.svg?style=flat-square)](https://GitHub.com/Rookout/dynatrace-desktop-application/releases/)
[![Github all releases](https://img.shields.io/github/downloads/rookout/dynatrace-desktop-application/total.svg?style=flat-square)](https://GitHub.com/Rookout/dynatrace-desktop-application/releases/)
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg?style=flat-square)](https://GitHub.com//Rookout/dynatrace-desktop-application/graphs/commit-activity)
[![GitHub contributors](https://img.shields.io/github/contributors/rookout/dynatrace-desktop-application.svg?style=flat-square)](https://GitHub.com/Rookout/dynatrace-desktop-application/graphs/contributors/)
[![GitHub license](https://img.shields.io/github/license/rookout/dynatrace-desktop-application.svg?style=flat-square)](https://github.com/Rookout/dynatrace-desktop-application/blob/master/LICENSE)
[![Known Vulnerabilities](https://snyk.io/test/github/rookout/dynatrace-desktop-application/badge.svg?style=flat-square)](https://snyk.io/test/github/rookout/dynatrace-desktop-application)
[![Twitter Follow](https://img.shields.io/twitter/follow/rookoutlabs.svg?style=social)](https://twitter.com/rookoutlabs)

Rookout is a data extraction and pipelining platform, which provides the ability to collect any piece of data from live code, on-demand, using non-breaking breakpoints (Learn more about Rookout on our [website](https://www.rookout.com) or our [docs pages](https://docs.rookout.com)).

The Rookout desktop app ("explorook") allows you to navigate through your local projects in a simple and flexible manner. Use this app in combination with the Rookout web debugger to set non-breaking breakpoints in your source files, and to instantly apply them to live code.
The Dynatrace desktop app (previously known as "Explorook" or "Rookout desktop app") allows you to navigate through your local projects in a simple and flexible manner. Use this app in combination with the Rookout web debugger or Dynatrace Live Debugger app (coming soon) to set non-breaking breakpoints in your source files, and to instantly apply them to live code.


<p align="center">
<img src="https://github.com/Rookout/explorook/blob/master/assets/animated-gif.gif" alt="Rookout Desktop App" width="840" />
</p>

- Ease of use - set up once and easily access any directory or file you choose directly from the browser. No need to manually open or refresh files and folders; no additional privileges needed.
- Git aware - seamlessly access your source code across all devices where the app is installed, regardless of the local paths to which you’ve cloned a git repository to. Easily collaborate with fellow developers working on the same code base.
- Security- maintain strict control over the files you open for sharing and the websites that can access them. Rookout will never collect or modify your source code.
- Security - maintain strict control over the files you open for sharing and the websites that can access them. Rookout will never collect or modify your source code.

## Security

At Rookout we take your source code security very seriously. Rookout will never collect or modify your source code.
At Dynatrace we take your source code security very seriously. Dynatrace will never collect or modify your source code.

The Rookout Desktop App was designed with security as a foremost concern, its security features are as follows:
The Dynatrace Desktop App was designed with security as a foremost concern, its security features are as follows:
- The App only listens for connections from localhost.
- The App only allows access from the Rookout app.

[Learn more about our security standards](https://www.rookout.com/solution/source-code-security/)
- The App only allows access from the Rookout and Dynatrace web apps.

## Installation

Expand All @@ -50,16 +51,16 @@ https://youtu.be/watch?v=mkMpzQPNcsI
## Contributing

There are many ways in which you can participate in the project, for example:
- [Submit bugs and feature requests](https://github.com/Rookout/explorook/issues), and help us verify as they are checked in.
- [Submit bugs and feature requests](https://github.com/Rookout/dynatrace-desktop-application/issues), and help us verify as they are checked in.
- Review the [documentation](https://docs.rookout.com) and make pull requests for anything from typos to new content.

If you are interested in fixing issues and contributing directly to the code base, please reach out to support@rookout.com.

## Feedback

- Ask a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/rookout)
- [Request a new feature](https://github.com/Rookout/explorook/issues)
- [File an issue](https://github.com/Rookout/explorook/issues)
- [Request a new feature](https://github.com/Rookout/dynatrace-desktop-application/issues)
- [File an issue](https://github.com/Rookout/dynatrace-desktop-application/issues)
- Follow [@rookoutlabs](https://twitter.com/rookoutlabs) and let us know what you think!
- Read and subscribe to the [official Rookout Blog](https://www.rookout.com/blog/)

Expand Down
Binary file removed assets/animated-gif.gif
Binary file not shown.
Binary file modified assets/dmg-background.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/dynatrace_web.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/explorook-main-window.gif
Binary file not shown.
Binary file modified assets/icons/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icons/logo@128x128.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icons/logo@16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icons/logo@256x256.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icons/logo@512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icons/mac/explorook_tray_Template.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icons/mac/explorook_tray_Template@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/icons/mac/icon.icns
Binary file not shown.
Binary file modified assets/icons/mac/icons.icns
Binary file not shown.
Binary file modified assets/icons/win/icon.ico
Binary file not shown.
1 change: 1 addition & 0 deletions assets/rookout_logo_horizontal.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading