dataduck 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|