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.
deployfish-mysql
is a plugin for deployfish that
allows you to manage databases in remote MySQL servers in AWS.
deploy mysql create {name}
: Create database a database and user, with appropriate GRANT
s.deploy mysql update {name}
: Update the user's password and GRANT
sdeploy mysql validate {name}
: Validate that the username/password combination is validdeploy mysql dump {name}
: Dump MySQL databases as SQL files to local file systems.deploy mysql load {name} {filename}
: Load a local SQL file into remote MySQL databasesdeploy mysql show-grants {name}
: Show GRANTs for your user{name}
above refers to the name
of a MySQL connection from the mysql:
section of your deployfish.yml
file. See below for how the mysql:
connection works.
pip install deployfish deployfish-mysql
First follow the instructions for installing and configuring deployfish, then
add this stanza to your ~/.deployfish.yml
file:
plugin.mysql:
enabled: true
NOTE: ~/.deployfish.yml
is the config file for deployfish itself. This is different from the deployfish.yml
file that defines your services and tasks.
deployfish-mysql
looks in your deployfish.yml
file (the one with your services and task definitions, not the ~/.deployfish.yml
config file for deployfish iteslf) for a section named mysql
, which has definitions of mysql databases:
mysql:
- name: test
service: service-test
host: my-remote-rds-host.amazonaws.com
db: mydb
user: myuser
pass: password
- name: config-test
service: service-test
host: config.DB_HOST
db: config.DB_NAME
user: config.DB_USER
pass: config.DB_PASSWORD
services:
- name: dftest-test
cluster: my-cluster
environment: test
config:
- DEBUG=False
- DB_HOST=${terraform.rds_address}
- DB_NAME=dftest
- DB_USER=dftest_u
- DB_PASSWORD:secure:kms_key_arn=${env.DB_PASSWORD}
Entries in the mysql:
section must minimally define these keys:
name
: the name of the connection. This will be used in all the deploy mysql
commands as the connection name.service
: the name of a service in the services:
section. This will be used to determine which host we use to use for SSH when doing our mysql commandshost
: the hostname of the remote MySQL serverdb
: the name of the database to work with in host
user
: the username of the user to use to authenticate to host
pass
: the password of the user to use to authenticate to host
These are optional keys that you can add to your connection definition:
port
: the port to connect to on the remote MySQL server. Default: 3306character_set
: set the character set of your database to this (used for deploy mysql create
and deploy mysql update
). Default: utf8
.collation
: set the collation set of your database to this (used for deploy mysql create
and deploy mysql update
). Default: utf8_unicode_ci
.As you can see in the examples above, you can either hard code host
, db
, user
and password
in or you can reference config
parameters from the config:
section of the definition of our service. For the latter, deployfish-mysql
will retrieve those parameters directly from AWS SSM Parameter Store, so ensure you write the service config to AWS before trying to establish a MySQL connection.
FAQs
Deployfish MySQL plugin
We found that deployfish-mysql demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 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.
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.