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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d74bc92fa09f135425c4328c28ff6c677c6ef64f
4
- data.tar.gz: ffb1b33a499b99b9b2cc9bc98bc2c398dee59742
3
+ metadata.gz: 4c85a45aea48dc00fdef79467a5148e71a32c691
4
+ data.tar.gz: 3c6a10310fcde7ca07efee6ed127d5339174b3dd
5
5
  SHA512:
6
- metadata.gz: 5d940d76ad6db3262ff637e4abea39f2e4defc91adc65f12cefc61f9823fba683af8c5ab014ccf5016420355d6277418e37267c5facfa4e641ed66add378d4ed
7
- data.tar.gz: c728b4a0e08620d4119ce721f1b02b0b5d6ec0820ca5043ea9f360fce001ff0fea86749929e86040c55239ba68c3ec4c0ba2d00ee0842ceb5947daf076ec3dcc
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
- Get in touch or visit [http://dataducketl.com/licensing](http://dataducketl.com/licensing) for licensing.
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.
@@ -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
@@ -15,5 +15,7 @@
15
15
  "Incremental vs Full Loading": incremental_vs_full_loading
16
16
 
17
17
  "Integrations":
18
+ "Airbrake": airbrake
18
19
  "Optimizely": optimizely
19
20
  "SEMrush": semrush
21
+ "Sentry": sentry
@@ -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
@@ -3,9 +3,6 @@ Dotenv.load
3
3
 
4
4
  require 'yaml'
5
5
 
6
- require 'supported_source'
7
- SupportedSource::Project.add('dataduck-etl', 'htzk67rx7a9g')
8
-
9
6
  Dir[File.dirname(__FILE__) + '/helpers/*.rb'].each do |file|
10
7
  require file
11
8
  end
@@ -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"],
@@ -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
- if ENV['SENTRY_DSN']
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=******")
@@ -1,8 +1,8 @@
1
1
  module DataDuck
2
2
  if !defined?(DataDuck::VERSION)
3
3
  VERSION_MAJOR = 1
4
- VERSION_MINOR = 0
5
- VERSION_PATCH = 1
4
+ VERSION_MINOR = 1
5
+ VERSION_PATCH = 0
6
6
  VERSION = [VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH].join('.')
7
7
  end
8
8
  end
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.1
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-07-03 00:00:00.000000000 Z
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: supported_source
196
+ name: airbrake
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - ">="
199
+ - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: 0.9.6
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: 0.9.6
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