dataduck 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +7 -1
- data/dataduck.gemspec +1 -2
- data/docs/contents.yml +2 -0
- data/docs/integrations/airbrake.md +14 -0
- data/docs/integrations/sentry.md +13 -0
- data/docs/overview/getting_started.md +0 -12
- data/lib/dataduck.rb +0 -3
- data/lib/dataduck/commands.rb +25 -0
- data/lib/dataduck/logs.rb +20 -3
- data/lib/dataduck/version.rb +2 -2
- data/static/logo.png +0 -0
- metadata +9 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4c85a45aea48dc00fdef79467a5148e71a32c691
|
|
4
|
+
data.tar.gz: 3c6a10310fcde7ca07efee6ed127d5339174b3dd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 14b0a7a521cf17446418dbf7536bbf60cebe32e38e2eae34464b96980d1e6318aa5f21be430cda827098771c63dd607f1b7b3fc21f1b27f2590e9bfe3ea2bd7b
|
|
7
|
+
data.tar.gz: fd14a28b61f6e75c4f5af591c39ec72b20abcfaf659de7ef0e63cf80c943f42f02567e61a1c2757e368e6ba322a90c2279f057d070ab68d93d9d0605551499ad
|
data/README.md
CHANGED
|
@@ -38,10 +38,16 @@ If you'd like to run this regularly, such as every night, it's recommended to us
|
|
|
38
38
|
|
|
39
39
|
Visit the [docs page](http://dataducketl.com/docs/overview/welcome) to read the documentation. The docs page is autogenerated from the files in this project's docs directory.
|
|
40
40
|
|
|
41
|
+
## Third Party Integrations
|
|
42
|
+
|
|
43
|
+
There are many third party integrations, including Optimizely, SEMrush, Sentry, and Airbrake. Visit the [docs page](http://dataducketl.com/docs/overview/welcome) to learn more about integrating.
|
|
44
|
+
|
|
41
45
|
## Contributing
|
|
42
46
|
|
|
43
47
|
To contribute, get in touch at http://DataDuckETL.com/ so that we can share the [Contributor License Agreement (CLA)](https://en.wikipedia.org/wiki/Contributor_License_Agreement) with you, then create a pull request.
|
|
44
48
|
|
|
45
49
|
## License
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
You can buy a license directly from Supported Source at [https://supportedsource.org/projects/dataduck-etl](https://supportedsource.org/projects/dataduck-etl)
|
|
52
|
+
|
|
53
|
+
You're also welcome to get in touch at [http://dataducketl.com/](http://dataducketl.com/) for invoicing or anything else.
|
data/dataduck.gemspec
CHANGED
|
@@ -31,6 +31,5 @@ Gem::Specification.new do |spec|
|
|
|
31
31
|
spec.add_runtime_dependency "sequel-redshift"
|
|
32
32
|
spec.add_runtime_dependency "whenever", "~> 0.9"
|
|
33
33
|
spec.add_runtime_dependency "sentry-raven", '~>0.15'
|
|
34
|
-
|
|
35
|
-
spec.add_dependency 'supported_source', '>=0.9.6'
|
|
34
|
+
spec.add_runtime_dependency "airbrake", '~> 5.4'
|
|
36
35
|
end
|
data/docs/contents.yml
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Airbrake Integration
|
|
2
|
+
|
|
3
|
+
Airbrake is an error tracking platform for tracking your application's exceptions.
|
|
4
|
+
|
|
5
|
+
The Airbrake integration uses Airbrake's API to send errors to Airbrake. Errors while ETLing a table will not stop other tables from still working.
|
|
6
|
+
|
|
7
|
+
To use the Airbrake integration, add your project id and project key to your .env file:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
AIRBRAKE_PROJECT_ID=123456
|
|
11
|
+
AIRBRAKE_PROJECT_KEY=abcdefghijklmnopqrstuvwxyz
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Now errors will be sent to Airbrake automatically.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Sentry Integration
|
|
2
|
+
|
|
3
|
+
Sentry is an error tracking platform for tracking your application's exceptions.
|
|
4
|
+
|
|
5
|
+
The Sentry integration sends errors from DataDuck ETL to Sentry. Errors while ETLing a table will not stop other tables from still working.
|
|
6
|
+
|
|
7
|
+
To use the Sentry integration, add your Sentry DSN to your .env file:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
SENTRY_DSN=123456
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Now errors will be sent to Sentry automatically.
|
|
@@ -19,18 +19,6 @@ Then execute:
|
|
|
19
19
|
|
|
20
20
|
$ bundle install
|
|
21
21
|
|
|
22
|
-
For customer relationship management, we use [Supported Source](https://supportedsource.org/). This means you'll have to
|
|
23
|
-
get a client token with Supported Source in order to run DataDuck ETL. Ensure you have the Supported Source command
|
|
24
|
-
line interface:
|
|
25
|
-
|
|
26
|
-
$ gem install supso
|
|
27
|
-
|
|
28
|
-
Then run the following command to get a client token for DataDuck ETL:
|
|
29
|
-
|
|
30
|
-
$ supso update
|
|
31
|
-
|
|
32
|
-
It will ask you for your work email, then send you a confirmation token. After confirming, you'll be able to continue.
|
|
33
|
-
|
|
34
22
|
Finally, run the quickstart command:
|
|
35
23
|
|
|
36
24
|
$ dataduck quickstart
|
data/lib/dataduck.rb
CHANGED
data/lib/dataduck/commands.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'erb'
|
|
2
2
|
require 'yaml'
|
|
3
3
|
require 'fileutils'
|
|
4
|
+
require 'typhoeus'
|
|
4
5
|
require 'io/console'
|
|
5
6
|
|
|
6
7
|
module DataDuck
|
|
@@ -165,10 +166,34 @@ module DataDuck
|
|
|
165
166
|
end
|
|
166
167
|
end
|
|
167
168
|
|
|
169
|
+
def self.quickstart_register_email(email)
|
|
170
|
+
registration_data = {
|
|
171
|
+
email: email,
|
|
172
|
+
version: DataDuck::VERSION,
|
|
173
|
+
source: "quickstart"
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
request = Typhoeus::Request.new(
|
|
177
|
+
"dataducketl.com/api/v1/register",
|
|
178
|
+
method: :post,
|
|
179
|
+
body: registration_data,
|
|
180
|
+
timeout: 30,
|
|
181
|
+
connecttimeout: 10,
|
|
182
|
+
)
|
|
183
|
+
|
|
184
|
+
hydra = Typhoeus::Hydra.new
|
|
185
|
+
hydra.queue(request)
|
|
186
|
+
hydra.run
|
|
187
|
+
end
|
|
188
|
+
|
|
168
189
|
def self.quickstart
|
|
169
190
|
puts "Welcome to DataDuck!"
|
|
170
191
|
puts "This quickstart wizard will help you set up DataDuck."
|
|
171
192
|
|
|
193
|
+
puts "What is your work email address?"
|
|
194
|
+
email = STDIN.gets.strip
|
|
195
|
+
self.quickstart_register_email(email)
|
|
196
|
+
|
|
172
197
|
puts "What kind of database would you like to source from?"
|
|
173
198
|
db_type = prompt_choices([
|
|
174
199
|
[:mysql, "MySQL"],
|
data/lib/dataduck/logs.rb
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
require 'logger'
|
|
2
2
|
require 'raven'
|
|
3
3
|
|
|
4
|
+
if ENV['AIRBRAKE_PROJECT_ID'] && ENV['AIRBRAKE_PROJECT_KEY']
|
|
5
|
+
require 'airbrake'
|
|
6
|
+
|
|
7
|
+
Airbrake.configure do |c|
|
|
8
|
+
c.project_id = ENV['AIRBRAKE_PROJECT_ID']
|
|
9
|
+
c.project_key = ENV['AIRBRAKE_PROJECT_KEY']
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
4
13
|
module DataDuck
|
|
5
14
|
module Logs
|
|
6
15
|
@@ONE_MB_IN_BYTES = 1048576
|
|
@@ -45,13 +54,21 @@ module DataDuck
|
|
|
45
54
|
puts "[ERROR] #{ message }"
|
|
46
55
|
@@logger.error(message)
|
|
47
56
|
|
|
48
|
-
|
|
49
|
-
Raven.capture_exception(err)
|
|
50
|
-
end
|
|
57
|
+
Logs.third_party_error_tracking!(err)
|
|
51
58
|
end
|
|
52
59
|
|
|
53
60
|
private
|
|
54
61
|
|
|
62
|
+
def Logs.third_party_error_tracking!(err)
|
|
63
|
+
if ENV['SENTRY_DSN']
|
|
64
|
+
Raven.capture_exception(err)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
if ENV['AIRBRAKE_PROJECT_ID'] && ENV['AIRBRAKE_PROJECT_KEY']
|
|
68
|
+
Airbrake.notify_sync(err)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
55
72
|
def Logs.sanitize_message(message)
|
|
56
73
|
message = message.gsub(/aws_access_key_id=[^';]+/, "aws_access_key_id=******")
|
|
57
74
|
message = message.gsub(/AWS_ACCESS_KEY_ID=[^';]+/, "AWS_ACCESS_KEY_ID=******")
|
data/lib/dataduck/version.rb
CHANGED
data/static/logo.png
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dataduck
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jeff Pickhardt
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-09-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -193,19 +193,19 @@ dependencies:
|
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
194
|
version: '0.15'
|
|
195
195
|
- !ruby/object:Gem::Dependency
|
|
196
|
-
name:
|
|
196
|
+
name: airbrake
|
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
|
198
198
|
requirements:
|
|
199
|
-
- - "
|
|
199
|
+
- - "~>"
|
|
200
200
|
- !ruby/object:Gem::Version
|
|
201
|
-
version:
|
|
201
|
+
version: '5.4'
|
|
202
202
|
type: :runtime
|
|
203
203
|
prerelease: false
|
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
205
|
requirements:
|
|
206
|
-
- - "
|
|
206
|
+
- - "~>"
|
|
207
207
|
- !ruby/object:Gem::Version
|
|
208
|
-
version:
|
|
208
|
+
version: '5.4'
|
|
209
209
|
description: A straightforward, effective ETL framework.
|
|
210
210
|
email:
|
|
211
211
|
- pickhardt@gmail.com
|
|
@@ -234,8 +234,10 @@ files:
|
|
|
234
234
|
- docs/commands/recreate.md
|
|
235
235
|
- docs/commands/show.md
|
|
236
236
|
- docs/contents.yml
|
|
237
|
+
- docs/integrations/airbrake.md
|
|
237
238
|
- docs/integrations/optimizely.md
|
|
238
239
|
- docs/integrations/semrush.md
|
|
240
|
+
- docs/integrations/sentry.md
|
|
239
241
|
- docs/overview/README.md
|
|
240
242
|
- docs/overview/getting_started.md
|
|
241
243
|
- docs/tables/README.md
|