jets 1.7.1 → 1.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +2 -2
- data/.gitignore +1 -0
- data/CHANGELOG.md +5 -0
- data/lib/jets/job/dsl.rb +19 -18
- data/lib/jets/job/dsl/event_source_mapping.rb +3 -58
- data/lib/jets/job/dsl/sns_event.rb +46 -0
- data/lib/jets/job/dsl/sqs_event.rb +96 -0
- data/lib/jets/lambda/dsl.rb +1 -1
- data/lib/jets/rack_server.rb +8 -2
- data/lib/jets/resource/sns.rb +1 -0
- data/lib/jets/resource/sns/subscription.rb +29 -0
- data/lib/jets/resource/sns/topic.rb +35 -0
- data/lib/jets/spec_helpers.rb +5 -0
- data/lib/jets/spec_helpers/params.rb +3 -3
- data/lib/jets/spec_helpers/request.rb +6 -0
- data/lib/jets/stack/main/extensions/sns.rb +1 -1
- data/lib/jets/version.rb +1 -1
- metadata +6 -3
- data/Gemfile.lock +0 -190
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d4b8b6547644c895f4b9f86ea9c58d1732f89bd68cc3f71a73cf4d2a6733eb0
|
4
|
+
data.tar.gz: e6447ef5b8099c9c405be40315cf9aa2dc711958158a79a86f578c1f0258117d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a90c4010311c435bc32714738dd83ece60822a8c34cb9d848c198bd0d8d9518129a764c5edf3ea873747f3ff38d3630ec991a907f5afd9acf6befabada4fd58
|
7
|
+
data.tar.gz: b2013f481f5be249ee7798bb746306d25e52ff9f1515020b28c3e7e7583511ea3796666734a202c3514235d0d6816ce28e677ef397238c88531a44116f0cbbb7
|
data/.circleci/config.yml
CHANGED
@@ -28,7 +28,7 @@ jobs:
|
|
28
28
|
# Download and cache dependencies
|
29
29
|
- restore_cache:
|
30
30
|
keys:
|
31
|
-
- v2-dependencies-{{ checksum "
|
31
|
+
- v2-dependencies-{{ checksum "jets.gemspec" }}
|
32
32
|
# fallback to using the latest cache if no exact match is found
|
33
33
|
- v2-dependencies-
|
34
34
|
|
@@ -40,7 +40,7 @@ jobs:
|
|
40
40
|
- save_cache:
|
41
41
|
paths:
|
42
42
|
- ./vendor/bundle
|
43
|
-
key: v2-dependencies-{{ checksum "
|
43
|
+
key: v2-dependencies-{{ checksum "jets.gemspec" }}
|
44
44
|
|
45
45
|
# Database setup
|
46
46
|
# - run: bundle exec rake db:create
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,11 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [1.7.2]
|
7
|
+
- #189: spec_helpers: `get` request now converts dangling params to query params. `query` keyword can be used to do the same thing explicitly.
|
8
|
+
- #190 SNS Event Lambda Trigger Support
|
9
|
+
- Start rack server on 127.0.0.1 for mega mode
|
10
|
+
|
6
11
|
## [1.7.1]
|
7
12
|
- fix Turbines with no initializer blocks
|
8
13
|
|
data/lib/jets/job/dsl.rb
CHANGED
@@ -8,11 +8,15 @@
|
|
8
8
|
#
|
9
9
|
module Jets::Job::Dsl
|
10
10
|
extend ActiveSupport::Concern
|
11
|
-
autoload :EventSourceMapping, "jets/job/dsl/event_source_mapping"
|
11
|
+
autoload :EventSourceMapping, "jets/job/dsl/event_source_mapping" # base for sqs_event, etc
|
12
|
+
autoload :SnsEvent, "jets/job/dsl/sns_event"
|
13
|
+
autoload :SqsEvent, "jets/job/dsl/sqs_event"
|
12
14
|
|
13
15
|
included do
|
14
16
|
class << self
|
15
17
|
include EventSourceMapping
|
18
|
+
include SnsEvent
|
19
|
+
include SqsEvent
|
16
20
|
|
17
21
|
# Public: Creates CloudWatch Event Rule
|
18
22
|
#
|
@@ -41,30 +45,27 @@ module Jets::Job::Dsl
|
|
41
45
|
end
|
42
46
|
|
43
47
|
def schedule_job(expression, props={})
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
@associated_properties = nil # reset for next definition, since we're defining eagerly
|
48
|
+
with_fresh_properties(multiple_resources: false) do
|
49
|
+
props = props.merge(schedule_expression: expression)
|
50
|
+
associated_properties(props)
|
51
|
+
resource(events_rule_definition) # add associated resource immediately
|
52
|
+
end
|
50
53
|
end
|
51
54
|
|
52
55
|
def event_pattern(details={}, props={})
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
@associated_properties = nil # reset for next definition, since we're defining eagerly
|
56
|
+
with_fresh_properties(multiple_resources: false) do
|
57
|
+
props = props.merge(event_pattern: details)
|
58
|
+
associated_properties(props)
|
59
|
+
resource(events_rule_definition) # add associated resource immediately
|
60
|
+
end
|
59
61
|
add_descriptions # useful: generic description in the Event Rule console
|
60
62
|
end
|
61
63
|
|
62
64
|
def events_rule(props={})
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
@associated_properties = nil # reset for next definition, since we're defining eagerly
|
65
|
+
with_fresh_properties(multiple_resources: false) do
|
66
|
+
associated_properties(props)
|
67
|
+
resource(events_rule_definition) # add associated resource immediately
|
68
|
+
end
|
68
69
|
end
|
69
70
|
|
70
71
|
# Works with eager definitions
|
@@ -1,66 +1,11 @@
|
|
1
|
+
# SqsEvent uses this module
|
1
2
|
module Jets::Job::Dsl
|
2
3
|
module EventSourceMapping
|
3
|
-
def declare_queue(props)
|
4
|
-
props ||= {} # since options.delete(:queue_properties) can be nil
|
5
|
-
r = Jets::Resource::Sqs::Queue.new(props)
|
6
|
-
with_resource_options(fresh_properties: true, multiple: true) do
|
7
|
-
resource(r.definition) # add associated resources immediately
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
4
|
def event_source_mapping(props={})
|
12
5
|
r = Jets::Resource::Lambda::EventSourceMapping.new(props)
|
13
|
-
|
14
|
-
resource(r.definition) # add associated
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def sqs_event(queue_name, options={})
|
19
|
-
if queue_name == :generate_queue
|
20
|
-
queue_arn = "!GetAtt {namespace}SqsQueue.Arn"
|
21
|
-
default_iam_policy = default_sqs_iam_policy('*') # Dont have access to full ARN on initial creation
|
22
|
-
declare_queue(options.delete(:queue_properties)) # delete to avoid using them for event_source_mapping
|
23
|
-
elsif queue_name.include?('!Ref') # reference shared resource
|
24
|
-
queue_arn = queue_name
|
25
|
-
default_iam_policy = default_sqs_iam_policy('*') # Dont have access to full ARN on initial creation
|
26
|
-
else # short-handle existing queue or full queue arn
|
27
|
-
queue_arn = full_queue_arn(queue_name)
|
28
|
-
default_iam_policy = default_sqs_iam_policy(queue_arn)
|
6
|
+
with_fresh_properties do
|
7
|
+
resource(r.definition) # add associated resource immediately
|
29
8
|
end
|
30
|
-
|
31
|
-
# Create iam policy allows access to queue
|
32
|
-
# Allow disabling in case use wants to add permission application-wide and not have extra IAM policy
|
33
|
-
iam_policy_props = options.delete(:iam_policy) || @iam_policy || default_iam_policy
|
34
|
-
iam_policy(iam_policy_props) unless iam_policy_props == :disable
|
35
|
-
|
36
|
-
props = options # by this time options only has EventSourceMapping properties
|
37
|
-
default = {
|
38
|
-
event_source_arn: queue_arn
|
39
|
-
}
|
40
|
-
props = default.merge(props)
|
41
|
-
|
42
|
-
event_source_mapping(props)
|
43
|
-
end
|
44
|
-
|
45
|
-
# Expands simple queue name to full arn. Example:
|
46
|
-
#
|
47
|
-
# hello-queue
|
48
|
-
# To:
|
49
|
-
# arn:aws:sqs:us-west-2:112233445566:hello-queue
|
50
|
-
def full_queue_arn(queue_name)
|
51
|
-
return queue_name if queue_name.include?("arn:aws:sqs")
|
52
|
-
|
53
|
-
"arn:aws:sqs:#{Jets.aws.region}:#{Jets.aws.account}:#{queue_name}"
|
54
|
-
end
|
55
|
-
|
56
|
-
def default_sqs_iam_policy(queue_name_arn='*')
|
57
|
-
{
|
58
|
-
action: ["sqs:ReceiveMessage",
|
59
|
-
"sqs:DeleteMessage",
|
60
|
-
"sqs:GetQueueAttributes"],
|
61
|
-
effect: "Allow",
|
62
|
-
resource: queue_name_arn,
|
63
|
-
}
|
64
9
|
end
|
65
10
|
end
|
66
11
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Jets::Job::Dsl
|
2
|
+
module SnsEvent
|
3
|
+
def sns_event(topic_name, props={})
|
4
|
+
if topic_name.to_s =~ /generate/
|
5
|
+
declare_sns_topic(props.delete(:topic_properties))
|
6
|
+
topic_arn = "!Ref {namespace}SnsTopic"
|
7
|
+
props.merge!(topic_arn: topic_arn)
|
8
|
+
declare_sns_subscription(props)
|
9
|
+
elsif topic_name.include?('!Ref') # reference shared resource
|
10
|
+
topic_arn = topic_name # contains !Ref
|
11
|
+
props.merge!(topic_arn: topic_arn)
|
12
|
+
declare_sns_subscription(props)
|
13
|
+
else # existing topic: short name or full arn
|
14
|
+
topic_arn = full_sns_topic_arn(topic_name)
|
15
|
+
props.merge!(topic_arn: topic_arn)
|
16
|
+
declare_sns_subscription(props)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def declare_sns_topic(props={})
|
21
|
+
props ||= {} # props.delete(:topic_properties) can be nil
|
22
|
+
r = Jets::Resource::Sns::Topic.new(props)
|
23
|
+
with_fresh_properties do
|
24
|
+
resource(r.definition) # add associated resource immediately
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def declare_sns_subscription(props={})
|
29
|
+
r = Jets::Resource::Sns::Subscription.new(props)
|
30
|
+
with_fresh_properties do
|
31
|
+
resource(r.definition) # add associated resource immediately
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Expands simple topic name to full arn. Example:
|
36
|
+
#
|
37
|
+
# hello-topic
|
38
|
+
# To:
|
39
|
+
# arn:aws:sns:us-west-2:112233445566:hello-topic
|
40
|
+
def full_sns_topic_arn(topic_name)
|
41
|
+
return topic_name if topic_name.include?("arn:aws:sns")
|
42
|
+
|
43
|
+
"arn:aws:sns:#{Jets.aws.region}:#{Jets.aws.account}:#{topic_name}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
# ## Event Source Mapping
|
2
|
+
#
|
3
|
+
# Underneath the hood, the `sqs_event` method sets up a [Lambda::EventSourceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html). So:
|
4
|
+
#
|
5
|
+
# ```ruby
|
6
|
+
# class HardJob
|
7
|
+
# class_timeout 30 # must be less than or equal to the SQS queue default timeout
|
8
|
+
#
|
9
|
+
# sqs_event "hello-queue"
|
10
|
+
# def dig
|
11
|
+
# puts "dig event #{JSON.dump(event)}"
|
12
|
+
# end
|
13
|
+
# end
|
14
|
+
# ```
|
15
|
+
#
|
16
|
+
# Cloud also be written with something like this:
|
17
|
+
#
|
18
|
+
# ```ruby
|
19
|
+
# class HardJob
|
20
|
+
# class_timeout 30 # must be less than or equal to the SQS queue default timeout
|
21
|
+
#
|
22
|
+
# event_source_mapping(
|
23
|
+
# event_source_arn: "arn:aws:sqs:us-west-2:112233445566:hello-queue",
|
24
|
+
# )
|
25
|
+
# iam_policy(
|
26
|
+
# action: ["sqs:ReceiveMessage",
|
27
|
+
# "sqs:DeleteMessage",
|
28
|
+
# "sqs:GetQueueAttributes"],
|
29
|
+
# effect: "Allow",
|
30
|
+
# resource: "arn:aws:sqs:us-west-2:112233445566:hello-queue",
|
31
|
+
# )
|
32
|
+
# def dig
|
33
|
+
# puts "dig event #{JSON.dump(event)}"
|
34
|
+
# end
|
35
|
+
# end
|
36
|
+
# ```
|
37
|
+
#
|
38
|
+
module Jets::Job::Dsl
|
39
|
+
module SqsEvent
|
40
|
+
def sqs_event(queue_name, options={})
|
41
|
+
if queue_name.to_s =~ /generate/
|
42
|
+
queue_arn = "!GetAtt {namespace}SqsQueue.Arn"
|
43
|
+
default_iam_policy = default_sqs_iam_policy('*') # Dont have access to full ARN on initial creation
|
44
|
+
declare_sqs_queue(options.delete(:queue_properties)) # delete to avoid using them for event_source_mapping
|
45
|
+
elsif queue_name.include?('!Ref') # reference shared resource
|
46
|
+
queue_arn = queue_name
|
47
|
+
default_iam_policy = default_sqs_iam_policy('*') # Dont have access to full ARN on initial creation
|
48
|
+
else # existing queue: short name or full arn
|
49
|
+
queue_arn = full_sqs_queue_arn(queue_name)
|
50
|
+
default_iam_policy = default_sqs_iam_policy(queue_arn)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Create iam policy allows access to queue
|
54
|
+
# Allow disabling in case use wants to add permission application-wide and not have extra IAM policy
|
55
|
+
iam_policy_props = options.delete(:iam_policy) || @iam_policy || default_iam_policy
|
56
|
+
iam_policy(iam_policy_props) unless iam_policy_props == :disable
|
57
|
+
|
58
|
+
props = options # by this time options only has EventSourceMapping properties
|
59
|
+
default = {
|
60
|
+
event_source_arn: queue_arn
|
61
|
+
}
|
62
|
+
props = default.merge(props)
|
63
|
+
|
64
|
+
event_source_mapping(props)
|
65
|
+
end
|
66
|
+
|
67
|
+
def declare_sqs_queue(props)
|
68
|
+
props ||= {} # since options.delete(:queue_properties) can be nil
|
69
|
+
r = Jets::Resource::Sqs::Queue.new(props)
|
70
|
+
with_fresh_properties do
|
71
|
+
resource(r.definition) # add associated resource immediately
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# Expands simple queue name to full arn. Example:
|
76
|
+
#
|
77
|
+
# hello-queue
|
78
|
+
# To:
|
79
|
+
# arn:aws:sqs:us-west-2:112233445566:hello-queue
|
80
|
+
def full_sqs_queue_arn(queue_name)
|
81
|
+
return queue_name if queue_name.include?("arn:aws:sqs")
|
82
|
+
|
83
|
+
"arn:aws:sqs:#{Jets.aws.region}:#{Jets.aws.account}:#{queue_name}"
|
84
|
+
end
|
85
|
+
|
86
|
+
def default_sqs_iam_policy(queue_name_arn='*')
|
87
|
+
{
|
88
|
+
action: ["sqs:ReceiveMessage",
|
89
|
+
"sqs:DeleteMessage",
|
90
|
+
"sqs:GetQueueAttributes"],
|
91
|
+
effect: "Allow",
|
92
|
+
resource: queue_name_arn,
|
93
|
+
}
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
data/lib/jets/lambda/dsl.rb
CHANGED
@@ -155,7 +155,7 @@ module Jets::Lambda::Dsl
|
|
155
155
|
# interfere with being able to pass in any keys for the properties hash at the end.
|
156
156
|
#
|
157
157
|
# TODO: If there's a cleaner way of doing this, let me know.
|
158
|
-
def
|
158
|
+
def with_fresh_properties(fresh_properties: true, multiple_resources: true)
|
159
159
|
@associated_properties = nil if fresh_properties # dont use any current associated_properties
|
160
160
|
@multiple_resources = multiple_resources
|
161
161
|
|
data/lib/jets/rack_server.rb
CHANGED
@@ -36,8 +36,14 @@ module Jets
|
|
36
36
|
# down to the sub bin/rackup command cleans up the child process fine.
|
37
37
|
Bundler.with_clean_env do
|
38
38
|
args = ''
|
39
|
-
|
40
|
-
|
39
|
+
# only forward the host option, port is always 9292 for simplicity
|
40
|
+
if @options[:host]
|
41
|
+
args << " --host #{@options[:host]}"
|
42
|
+
else
|
43
|
+
args << " --host 127.0.0.1" # using the default localhost is not starting up https://stackoverflow.com/questions/4356646/address-family-not-supported-by-protocol-family
|
44
|
+
end
|
45
|
+
|
46
|
+
|
41
47
|
command = "cd #{rack_project} && bin/rackup#{args}" # leads to the same wrapper rack scripts
|
42
48
|
puts "=> #{command}".color(:green)
|
43
49
|
system(command)
|
data/lib/jets/resource/sns.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
# CloudFormation SNS Subscription docs: https://amzn.to/2SJtN3C
|
2
|
+
module Jets::Resource::Sns
|
3
|
+
class Subscription < Jets::Resource::Base
|
4
|
+
def initialize(props)
|
5
|
+
@props = props # associated_properties from dsl.rb
|
6
|
+
end
|
7
|
+
|
8
|
+
def definition
|
9
|
+
{
|
10
|
+
subscription_logical_id => {
|
11
|
+
type: "AWS::SNS::Subscription",
|
12
|
+
properties: merged_properties,
|
13
|
+
}
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
# Do not name this method properties, that is a computed method of `Jets::Resource::Base`
|
18
|
+
def merged_properties
|
19
|
+
{
|
20
|
+
endpoint: "!GetAtt {namespace}LambdaFunction.Arn",
|
21
|
+
protocol: "lambda",
|
22
|
+
}.deep_merge(@props)
|
23
|
+
end
|
24
|
+
|
25
|
+
def subscription_logical_id
|
26
|
+
"{namespace}_sns_subscription"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# CloudFormation SNS Topic docs: https://amzn.to/2MYbUZc
|
2
|
+
module Jets::Resource::Sns
|
3
|
+
class Topic < Jets::Resource::Base
|
4
|
+
def initialize(props)
|
5
|
+
@props = props # associated_properties from dsl.rb
|
6
|
+
end
|
7
|
+
|
8
|
+
def definition
|
9
|
+
{
|
10
|
+
topic_logical_id => {
|
11
|
+
type: "AWS::SNS::Topic",
|
12
|
+
properties: merged_properties,
|
13
|
+
}
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
# Do not name this method properties, that is a computed method of `Jets::Resource::Base`
|
18
|
+
def merged_properties
|
19
|
+
display_name = "{namespace} Topic"[0..99] # limit is 100 chars
|
20
|
+
{
|
21
|
+
display_name: display_name,
|
22
|
+
# Not setting subscription this way but instead with a SNS::Subscription resource so the interface
|
23
|
+
# is consistent. Leaving comment in here to remind me and in case decide to change this.
|
24
|
+
# subscription: [
|
25
|
+
# endpoint: "!GetAtt {namespace}LambdaFunction.Arn",
|
26
|
+
# protocol: "lambda"
|
27
|
+
# ]
|
28
|
+
}.deep_merge(@props)
|
29
|
+
end
|
30
|
+
|
31
|
+
def topic_logical_id
|
32
|
+
"{namespace}_sns_topic"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/jets/spec_helpers.rb
CHANGED
@@ -32,6 +32,11 @@ module Jets
|
|
32
32
|
request.headers.deep_merge!(params.delete(:headers) || {})
|
33
33
|
|
34
34
|
request.params.body_params = params.delete(:params) || params || {}
|
35
|
+
|
36
|
+
request.params.query_params = params.delete(:query)
|
37
|
+
request.params.query_params ||= params if request.method == :get
|
38
|
+
request.params.query_params ||= {}
|
39
|
+
|
35
40
|
request.params.path_params = params
|
36
41
|
|
37
42
|
@response = request.dispatch!
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Jets
|
2
2
|
module SpecHelpers
|
3
3
|
class Params
|
4
|
-
attr_accessor :path_params, :body_params
|
5
|
-
def initialize(path_params={}, body_params={})
|
6
|
-
@path_params, @body_params = path_params, body_params
|
4
|
+
attr_accessor :path_params, :body_params, :query_params
|
5
|
+
def initialize(path_params={}, body_params={}, query_params={})
|
6
|
+
@path_params, @body_params, @query_params = path_params, body_params, query_params
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
data/lib/jets/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -438,7 +438,6 @@ files:
|
|
438
438
|
- Dockerfile
|
439
439
|
- Dockerfile.base
|
440
440
|
- Gemfile
|
441
|
-
- Gemfile.lock
|
442
441
|
- Guardfile
|
443
442
|
- LICENSE.txt
|
444
443
|
- Procfile
|
@@ -653,6 +652,8 @@ files:
|
|
653
652
|
- lib/jets/job/base.rb
|
654
653
|
- lib/jets/job/dsl.rb
|
655
654
|
- lib/jets/job/dsl/event_source_mapping.rb
|
655
|
+
- lib/jets/job/dsl/sns_event.rb
|
656
|
+
- lib/jets/job/dsl/sqs_event.rb
|
656
657
|
- lib/jets/klass.rb
|
657
658
|
- lib/jets/lambda.rb
|
658
659
|
- lib/jets/lambda/dsl.rb
|
@@ -744,6 +745,8 @@ files:
|
|
744
745
|
- lib/jets/resource/route53/record_set.rb
|
745
746
|
- lib/jets/resource/s3.rb
|
746
747
|
- lib/jets/resource/sns.rb
|
748
|
+
- lib/jets/resource/sns/subscription.rb
|
749
|
+
- lib/jets/resource/sns/topic.rb
|
747
750
|
- lib/jets/resource/sqs.rb
|
748
751
|
- lib/jets/resource/sqs/queue.rb
|
749
752
|
- lib/jets/resource/standardizer.rb
|
data/Gemfile.lock
DELETED
@@ -1,190 +0,0 @@
|
|
1
|
-
GIT
|
2
|
-
remote: https://github.com/tongueroo/webpacker.git
|
3
|
-
revision: 3651cc317358018ebd16de75df3b8184adf1b818
|
4
|
-
branch: jets
|
5
|
-
specs:
|
6
|
-
webpacker (3.2.0)
|
7
|
-
activesupport (>= 4.2)
|
8
|
-
rack-proxy (>= 0.6.1)
|
9
|
-
railties (>= 4.2)
|
10
|
-
|
11
|
-
PATH
|
12
|
-
remote: .
|
13
|
-
specs:
|
14
|
-
jets (1.7.1)
|
15
|
-
activerecord (~> 5.2.1)
|
16
|
-
activesupport (~> 5.2.1)
|
17
|
-
aws-sdk-apigateway
|
18
|
-
aws-sdk-cloudformation
|
19
|
-
aws-sdk-cloudwatchlogs
|
20
|
-
aws-sdk-dynamodb
|
21
|
-
aws-sdk-lambda
|
22
|
-
aws-sdk-s3
|
23
|
-
aws-sdk-sns
|
24
|
-
aws-sdk-sqs
|
25
|
-
dotenv
|
26
|
-
gems
|
27
|
-
hashie
|
28
|
-
jets-html-sanitizer
|
29
|
-
json
|
30
|
-
kramdown
|
31
|
-
memoist
|
32
|
-
mimemagic
|
33
|
-
rack
|
34
|
-
railties (~> 5.2.1)
|
35
|
-
rainbow
|
36
|
-
recursive-open-struct
|
37
|
-
text-table
|
38
|
-
thor
|
39
|
-
|
40
|
-
GEM
|
41
|
-
remote: https://rubygems.org/
|
42
|
-
specs:
|
43
|
-
actionpack (5.2.2)
|
44
|
-
actionview (= 5.2.2)
|
45
|
-
activesupport (= 5.2.2)
|
46
|
-
rack (~> 2.0)
|
47
|
-
rack-test (>= 0.6.3)
|
48
|
-
rails-dom-testing (~> 2.0)
|
49
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
50
|
-
actionview (5.2.2)
|
51
|
-
activesupport (= 5.2.2)
|
52
|
-
builder (~> 3.1)
|
53
|
-
erubi (~> 1.4)
|
54
|
-
rails-dom-testing (~> 2.0)
|
55
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
56
|
-
activemodel (5.2.2)
|
57
|
-
activesupport (= 5.2.2)
|
58
|
-
activerecord (5.2.2)
|
59
|
-
activemodel (= 5.2.2)
|
60
|
-
activesupport (= 5.2.2)
|
61
|
-
arel (>= 9.0)
|
62
|
-
activesupport (5.2.2)
|
63
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
64
|
-
i18n (>= 0.7, < 2)
|
65
|
-
minitest (~> 5.1)
|
66
|
-
tzinfo (~> 1.1)
|
67
|
-
arel (9.0.0)
|
68
|
-
aws-eventstream (1.0.1)
|
69
|
-
aws-partitions (1.136.0)
|
70
|
-
aws-sdk-apigateway (1.23.0)
|
71
|
-
aws-sdk-core (~> 3, >= 3.39.0)
|
72
|
-
aws-sigv4 (~> 1.0)
|
73
|
-
aws-sdk-cloudformation (1.14.0)
|
74
|
-
aws-sdk-core (~> 3, >= 3.39.0)
|
75
|
-
aws-sigv4 (~> 1.0)
|
76
|
-
aws-sdk-cloudwatchlogs (1.13.0)
|
77
|
-
aws-sdk-core (~> 3, >= 3.39.0)
|
78
|
-
aws-sigv4 (~> 1.0)
|
79
|
-
aws-sdk-core (3.46.0)
|
80
|
-
aws-eventstream (~> 1.0)
|
81
|
-
aws-partitions (~> 1.0)
|
82
|
-
aws-sigv4 (~> 1.0)
|
83
|
-
jmespath (~> 1.0)
|
84
|
-
aws-sdk-dynamodb (1.20.0)
|
85
|
-
aws-sdk-core (~> 3, >= 3.39.0)
|
86
|
-
aws-sigv4 (~> 1.0)
|
87
|
-
aws-sdk-kms (1.13.0)
|
88
|
-
aws-sdk-core (~> 3, >= 3.39.0)
|
89
|
-
aws-sigv4 (~> 1.0)
|
90
|
-
aws-sdk-lambda (1.17.0)
|
91
|
-
aws-sdk-core (~> 3, >= 3.39.0)
|
92
|
-
aws-sigv4 (~> 1.0)
|
93
|
-
aws-sdk-s3 (1.30.1)
|
94
|
-
aws-sdk-core (~> 3, >= 3.39.0)
|
95
|
-
aws-sdk-kms (~> 1)
|
96
|
-
aws-sigv4 (~> 1.0)
|
97
|
-
aws-sdk-sns (1.9.0)
|
98
|
-
aws-sdk-core (~> 3, >= 3.39.0)
|
99
|
-
aws-sigv4 (~> 1.0)
|
100
|
-
aws-sdk-sqs (1.10.0)
|
101
|
-
aws-sdk-core (~> 3, >= 3.39.0)
|
102
|
-
aws-sigv4 (~> 1.0)
|
103
|
-
aws-sigv4 (1.0.3)
|
104
|
-
builder (3.2.3)
|
105
|
-
byebug (10.0.2)
|
106
|
-
concurrent-ruby (1.1.4)
|
107
|
-
crass (1.0.4)
|
108
|
-
diff-lcs (1.3)
|
109
|
-
dotenv (2.6.0)
|
110
|
-
dynomite (1.2.2)
|
111
|
-
activesupport
|
112
|
-
aws-sdk-dynamodb
|
113
|
-
erubi (1.8.0)
|
114
|
-
gems (1.1.1)
|
115
|
-
json
|
116
|
-
hashie (3.6.0)
|
117
|
-
i18n (1.5.3)
|
118
|
-
concurrent-ruby (~> 1.0)
|
119
|
-
jets-html-sanitizer (1.0.4)
|
120
|
-
loofah (~> 2.2, >= 2.2.2)
|
121
|
-
jmespath (1.4.0)
|
122
|
-
json (2.1.0)
|
123
|
-
kramdown (2.1.0)
|
124
|
-
loofah (2.2.3)
|
125
|
-
crass (~> 1.0.2)
|
126
|
-
nokogiri (>= 1.5.9)
|
127
|
-
memoist (0.16.0)
|
128
|
-
method_source (0.9.2)
|
129
|
-
mimemagic (0.3.3)
|
130
|
-
mini_portile2 (2.4.0)
|
131
|
-
minitest (5.11.3)
|
132
|
-
mysql2 (0.5.2)
|
133
|
-
nokogiri (1.10.1)
|
134
|
-
mini_portile2 (~> 2.4.0)
|
135
|
-
rack (2.0.6)
|
136
|
-
rack-proxy (0.6.5)
|
137
|
-
rack
|
138
|
-
rack-test (1.1.0)
|
139
|
-
rack (>= 1.0, < 3)
|
140
|
-
rails-dom-testing (2.0.3)
|
141
|
-
activesupport (>= 4.2.0)
|
142
|
-
nokogiri (>= 1.6)
|
143
|
-
rails-html-sanitizer (1.0.4)
|
144
|
-
loofah (~> 2.2, >= 2.2.2)
|
145
|
-
railties (5.2.2)
|
146
|
-
actionpack (= 5.2.2)
|
147
|
-
activesupport (= 5.2.2)
|
148
|
-
method_source
|
149
|
-
rake (>= 0.8.7)
|
150
|
-
thor (>= 0.19.0, < 2.0)
|
151
|
-
rainbow (3.0.0)
|
152
|
-
rake (12.3.2)
|
153
|
-
recursive-open-struct (1.1.0)
|
154
|
-
rspec (3.8.0)
|
155
|
-
rspec-core (~> 3.8.0)
|
156
|
-
rspec-expectations (~> 3.8.0)
|
157
|
-
rspec-mocks (~> 3.8.0)
|
158
|
-
rspec-core (3.8.0)
|
159
|
-
rspec-support (~> 3.8.0)
|
160
|
-
rspec-expectations (3.8.2)
|
161
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
162
|
-
rspec-support (~> 3.8.0)
|
163
|
-
rspec-mocks (3.8.0)
|
164
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
165
|
-
rspec-support (~> 3.8.0)
|
166
|
-
rspec-support (3.8.0)
|
167
|
-
rspec_junit_formatter (0.4.1)
|
168
|
-
rspec-core (>= 2, < 4, != 2.12.0)
|
169
|
-
text-table (1.2.4)
|
170
|
-
thor (0.20.3)
|
171
|
-
thread_safe (0.3.6)
|
172
|
-
tzinfo (1.2.5)
|
173
|
-
thread_safe (~> 0.1)
|
174
|
-
|
175
|
-
PLATFORMS
|
176
|
-
ruby
|
177
|
-
|
178
|
-
DEPENDENCIES
|
179
|
-
bundler
|
180
|
-
byebug
|
181
|
-
dynomite
|
182
|
-
jets!
|
183
|
-
mysql2 (~> 0.5.2)
|
184
|
-
rake
|
185
|
-
rspec
|
186
|
-
rspec_junit_formatter
|
187
|
-
webpacker!
|
188
|
-
|
189
|
-
BUNDLED WITH
|
190
|
-
1.17.3
|