Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
openfin-layouts
Advanced tools
The OpenFin Layouts Service delivers window management and layout user experience across the desktop for OpenFin-based applications.
This project consist of 3 parts:
CTRL+SHIFT+U
or CMD+SHIFT+U
when the window has focushttps://cdn.openfin.co/services/openfin/layouts/<version>/layouts-service.zip
Integrating the Layouts Service within an application is done by declaring the service in the application manifest, and importing the Client API.
To ensure the service is running, you must declare it in your application config.
"services":
[
{"name": "layouts"}
]
During development, you can add a URL for specifying a custom location or a specific version:
"services":
[
{
"name": "layouts",
"manifestUrl": "https://custom-location/<version>/app.json"
}
]
Refer to the Desktop Services documentation for details on managing service location/version within production environments.
npm install openfin-layouts
The client library is also available as a resource which can be included via <script>
tag:
<script src="https://cdn.openfin.co/services/openfin/layouts/<VERSION>/openfin-layouts.js"></script>
This will expose the global variable layouts
with the API methods documented in the link below. Example:
layouts.snapAndDock.undockWindow();
The client module exports a set of functions, documented in the API docs.
Using Layouts is described in detail in our tutorial.
To preview the functionality of the service without integrating it into an existing application - or to start contributing to the service - the service can be run locally.
After checkout, install project dependencies using npm install
. The integration tests within the project rely on robotjs in order to manipulate windows at the OS-level. This adds some caveats to being able to follow the standard "npm install ; npm start
" convention:
npm install -g windows-build-tools
with Administrator privileges.To setup the project whilst avoiding the above dependencies, install using npm install --ignore-scripts
.
Once dependencies are installed, start the "built-in" sample application with npm start
. This uses webpack-dev-middleware
to both build and host the application; a custom server script will start the OpenFin application once the server is up and running.
The startup script has optional arguments which can be used to tweak the behavior of the build and the test server. Use npm start -- -h
for details on the available parameters and their effects.
The service consists of several different components unified into a single project. The package.json
defines the combined dependencies of all components. Any modules required for the pre-built client to work within an application are included in the "dependencies"
section, and the remaining dependencies - used to build the client, and to both build & run the provider and demo application - are included under "devDependencies"
.
Similarly, there is a single webpack.config.js
script that will build the above components.
To run the full test-suite for layouts-service, run:
npm install
npm test
This will run unit tests followed by the integration tests. These steps can also be run individually via npm run test:unit
and npm run test:int
. When running the tests separately in this way, both test runners support some optional arguments. Append --help
to either of the above npm run
commands to see the available options.
Staging and production builds are managed via the Jenkinsfile build script. This will build the project as usual (except with the --mode production
argument) and then deploy the client and provider to their respective locations. The demo application exists only within this repository and is not deployed.
The service client is deployed as an NPM module, so that it can be included as a dependency in any application that wishes to integrate the service.
The service provider is a standard OpenFin application, only its lifecycle is controlled by the RVM (based upon the requirements of user-launched applications) rather than being launched by users. The provider is deployed to the OpenFin CDN; a zip file is also provided to assist with re-deploying the provider to an alternate location. Direct links to each build are listed in the release notes, available on the services versions page.
Settings>Hardware>Mouse&Keyboard>Mouse
to Optimize for Games
A list of known issues can be found on our versions page.
This project uses the Apache2 license.
However, if you run this code, it may call on the OpenFin RVM or OpenFin Runtime, which are covered by OpenFin's Developer, Community, and Enterprise licenses. You can learn more about OpenFin licensing at the links listed below or just email us at support@openfin.co with questions.
https://openfin.co/developer-agreement/
https://openfin.co/licensing/
This is an open source project and all are encouraged to contribute. Please enter an issue in the repository for any questions or problems. Alternatively, please contact us at support@openfin.co.
FAQs
Client library for the OpenFin Layouts service
We found that openfin-layouts demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 14 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.