Strike
Command line script to generate mysql dump with encrypted data. This is a wrapper arround the my_obfuscate gem.
Installation
To install it:
$ gem install strike
Or install it yourself:
$ bundle install
$ bundle exec rake install
Usage
To see all the options execute:
$ strike help
To generate a new dump, use the following command:
$ strike dump mysql://root@localhost/db_production --profile=tables.rb > obfuscated_dump.sql
To obfuscate an existing sql dump, use the following command:
$ cat original_dump.sql | strike obfuscate --profile=tables.rb > obfuscated_dump.sql
It is very important to generate the mysql dump with the -c
option.
This command dumps the database_url
following the tables defined in the profile
file (defaults to Strikefile
). The default dump output is STDOUT.
The database_url
must have one of the following formats:
mysql://user:password@host/database
mysql://user@host/database
It uses the same database url format than Sequel.
Profile file
The profile file is a ruby file with the definitions of the tables that hold the data that needs to be obfuscated or encrypted. The definitions has the same format that is specified by the my_obfuscate gem, but with a convenient DSL. Not all the data of all the tables needs to be defined.
By default, the command will search for a Strikefile
in the current directory.
Example profile file:
# tables_definition.rb
table :users do |t|
# t.column_name :obfuscation_type
t.name :first_name
t.email :email
end
def some_method
'Fixed title'
end
table :movies do |t|
t.title type: fixed, string: some_method
t.date type: fixed, string: proc { |row| DateTime.now }
end
Dependencies
mysqldump
: to create the dump to manipulate.- my_obfuscate: the core of this utility.
- Thor: cli utilities.
Notes
- It is only 1.9 compliant.
- Only supports
mysql
.
Why that name?
Comes from S.T.R.I.K.E.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request