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 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