Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
A relaxed wrapper for dalmatian and FISS
gcloud --version
should be at least 252.0.0
. If it is not, please run gcloud components update
gcloud auth application-default login
and gcloud config set account {account}
before running Lapdoggcloud components install alpha beta
brew install node npm
node --version
>= 10.15.1npm --version
>= 6.4.1pip install lapdog
pip install --upgrade lapdog
node
and npm
if you don't already have them installed
brew install node npm
lapdog ui --install
. This may take a whilelapdog
may be imported within python as a drop-in replacement for dalmatian
WorkspaceManager
s in lapdog cache data when communicating with Firecloud.
If Firecloud experiences an intermittent failure, the WorkspaceManager
may be
able to continue running in offline mode. Calling WorkspaceManager.sync()
will
reconnect to Firecloud, pushing out any data updates that were queued while in offline modeWorkspaceManager
s in lapdog present the execution api via WorkspaceManager.execute()
.
Executions differ from submissions in that they run directly on Google and results are
uploaded back to Firecloud afterwardslapdog
may be used as a command line tool.
lapdog --help
to get the list of available commandslapdog
may be used via an interactive user interface which serves to run and
monitor lapdog executions
lapdog ui
to launch the user interfaceLapdog executes jobs through dedicated Google Projects ("Engines") for each FireCloud Namespace.
A Lapdog Engine can only be initialized for a given Namespace by a billing account admin.
To initialize a new Engine, contact your Namespace admin and ask them to run lapdog initialize-project
.
After an Engine is initialized, you will have to register with it:
WorkspaceManager
in an unregistered Namespace, you will get a warningWorkspaceManager.gateway.registered
WorkspaceManager.gateway.register()
register()
againIn the UI, at the bottom of every page, you will find a firecloud.org email.
This is a proxy group email which contains you, and all your service accounts.
To allow the Lapdog Engine to run jobs, that proxy group email must be granted
WRITE access to FireCloud workspaces where jobs will run. You may grant the group
READ access to workspaces where data will be read from, but jobs cannot execute
in workspaces without WRITE permissions. The proxy group email can be found by
calling lapdog.cloud.proxy_group_for_user(YOUR_EMAIL)
.
NOTE: Due to a bug in FireCloud, permissions will not be granted if the group was already granted access to a workspace before you registered to that namespace's Lapdog Engine. If your proxy email definitely was granted access to a workspace, but your jobs are still failing with permissions errors, try removing access and then re-granting it. You can see FireCloud's response to this bug report here
See the milestones page to read the development roadmap.
methodRepoMethod.methodVersion
to "latest" and let Lapdog figure out what the snapshot ID isprepare_entity_df
on a DataFrame before uploading to Firecloud. Any local filepaths will be uploaded to the workspace's bucket in the background and a new DataFrame will be returned containing the new gs://
pathsupdate_attributes
, any values which refer to local filepaths will be uploaded in the background (just like prepare_entity_df
). update_attributes
now returns a dictionary containing the attributes exactly as uploadedUpload Results
button in the UI.Often, when installing Lapdog, the installation fails when upgrading PyYAML because it is unable to uninstall the current PyYAML version.
This is because some older versions of PyYAML were distributed through distutils
which prevents packages from being uninstalled. New versions of PyYAML are distributed
through setuptools
which can be successfully uninstalled.
To resolve this issue, navigate to your Python site-packages directory. The site-packages
directory usually ends with .../lib/python{version}/site-packages/
. The exact location
depends on your platform, environment manager, and python configuration.
/{path to anaconda}/envs/{environment}/lib/python{version}/site-packages
/{path to environment}/lib/python{version}/site-packages
/usr/local/lib/python{version}/site-packages
An easy way to locate this folder is to open python and then:
import yaml
yaml
This expression will evaluate and print the path to the yaml
module, which will be
within your site-packages directory.
After locating the site-packages directory, you must remove the following two directories:
.../site-packages/yaml/
.../site-packages/PyYAML*.egg-info
Once removed, you can try the installation command for lapdog again.
FAQs
A relaxed wrapper for FISS and dalmatian
We found that lapdog demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.