jets 3.1.1 → 3.1.4

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
  SHA256:
3
- metadata.gz: 813f79a0798f261ab43737c70500683685cd944c2a70e4e3a0a203907e43c6b3
4
- data.tar.gz: c008bb140e3348a45e623fa465d6c3d5df1532963f12cae4a92db9e3cf35eda8
3
+ metadata.gz: 50e281f1856a1a82508629d805afe52156c44dc360f38d49528ca67e586ae8a4
4
+ data.tar.gz: ee5c33fe1a4f6929d1b285ba6a16acbfedcba1f229f34501f45c0983d4c71d6f
5
5
  SHA512:
6
- metadata.gz: 69a14da58cabac458d4bf193a64e20dab760d7c5c210bf8c3990780721f20e36b49d9d3665cd878f776b87547dd6ee26641fdf6bdbb4b0bb51eea2fad2e24648
7
- data.tar.gz: 8f3d574fd011c5d5d3e3205b6697d42af756e5756d7fed6623198a76461854b6647d7099115b68d413e5f7ecaaa4a72a514c842cedb41888cc8ed9c251671fec
6
+ metadata.gz: 531f6ccbc1f750cd08b4ac8575017c12de6f21104d014b983a14270e9b6a2760e097a03c5672de4ec989cbbefb52cf6f25d37a2a2459743c2c49e72c1b715985
7
+ data.tar.gz: 116483cc99bb26c464de5665a7abfaba09c95710a298026a25acfbcb4c42bfce0df48a6efba6f937031fb54db7b91485f83e18b0c048ec4c10837682c89d8076
@@ -0,0 +1 @@
1
+ github: boltops-tools
data/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
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/).
5
5
 
6
+ ## [3.1.4] - 2022-07-02
7
+ - [#627](https://github.com/boltops-tools/jets/pull/627) use >= for most gem dependencies
8
+
9
+ ## [3.1.3] - 2022-06-29
10
+ - [#626](https://github.com/boltops-tools/jets/pull/626) aws options to better handle rate limit for base path mapping
11
+
12
+ ## [3.1.2] - 2022-04-24
13
+ - [#618](https://github.com/boltops-tools/jets/pull/618) Jets Console accepts environment cli argument
14
+ - [#621](https://github.com/boltops-tools/jets/pull/621) Add SQS and SNS event helpers for jobs
15
+ - [#624](https://github.com/boltops-tools/jets/pull/624) Add lambda.function.ephemeral_storage function property support
16
+
6
17
  ## [3.1.1] - 2022-01-18
7
18
  - [#615](https://github.com/boltops-tools/jets/pull/615) adjust required_ruby_version
8
19
 
data/jets.gemspec CHANGED
@@ -44,7 +44,7 @@ Gem::Specification.new do |spec|
44
44
  spec.add_dependency "aws-sdk-sqs"
45
45
  spec.add_dependency "aws-sdk-ssm"
46
46
  spec.add_dependency "cfn-status"
47
- spec.add_dependency "cfn_camelizer", "~> 0.4.6"
47
+ spec.add_dependency "cfn_camelizer", ">= 0.4.9"
48
48
  spec.add_dependency "cfn_response"
49
49
  spec.add_dependency "dotenv"
50
50
  spec.add_dependency "gems" # jets-gems dependency
@@ -57,11 +57,11 @@ Gem::Specification.new do |spec|
57
57
  spec.add_dependency "railties", "~> 6.1.0" # for ActiveRecord database_tasks.rb
58
58
  spec.add_dependency "rainbow"
59
59
  spec.add_dependency "recursive-open-struct"
60
- spec.add_dependency "serverlessgems", "~> 0.1.4"
60
+ spec.add_dependency "serverlessgems", ">= 0.2.0"
61
61
  spec.add_dependency "shotgun"
62
62
  spec.add_dependency "text-table"
63
63
  spec.add_dependency "thor"
64
- spec.add_dependency "zeitwerk", "~> 2.5.0"
64
+ spec.add_dependency "zeitwerk", ">= 2.6.0"
65
65
 
66
66
  spec.add_development_dependency "bundler"
67
67
  spec.add_development_dependency "byebug"
@@ -59,6 +59,7 @@ class Jets::Application
59
59
  # default memory setting based on:
60
60
  # https://medium.com/epsagon/how-to-make-lambda-faster-memory-performance-benchmark-be6ebc41f0fc
61
61
  config.function.memory_size = 1536
62
+ config.function.ephemeral_storage = { size: 512 } # megabytes
62
63
 
63
64
  config.prewarm = ActiveSupport::OrderedOptions.new
64
65
  config.prewarm.enable = true
data/lib/jets/cli.rb CHANGED
@@ -63,7 +63,8 @@ class Jets::CLI
63
63
  # Pretty tricky, we need to use the raw @given_args as thor_args eventually calls Commands::Base#eager_load!
64
64
  # which uses Jets.env before we get a chance to override ENV['JETS_ENV']
65
65
  command, env = @given_args[0..1]
66
- return unless %w[deploy delete].include?(command)
66
+
67
+ return unless %w[deploy delete console c].include?(command)
67
68
  env = nil if env&.starts_with?('-')
68
69
  return unless env
69
70
  ENV['JETS_ENV'] = env ? env : 'development'
@@ -1,5 +1,11 @@
1
1
  class Jets::Commands::Console
2
- def self.run
2
+ attr_reader :environment
3
+
4
+ def initialize(environment)
5
+ @environment = environment
6
+ end
7
+
8
+ def run
3
9
  puts Jets::Booter.message
4
10
 
5
11
  # Thanks: https://mutelight.org/bin-console
@@ -61,10 +61,13 @@ module Jets::Commands
61
61
  Jets::Router.validate_routes!
62
62
  end
63
63
 
64
- desc "console", "REPL console with Jets environment loaded"
64
+ desc "console [environment]", "REPL console with Jets environment loaded"
65
65
  long_desc Help.text(:console)
66
- def console
67
- Console.run
66
+ # Note the environment is here to trick the Thor parser to allowing an
67
+ # environment parameter. It is not actually set here. It is set earlier
68
+ # in cli.rb: set_jets_env_from_cli_arg!
69
+ def console(environment=nil)
70
+ Console.new(options).run
68
71
  end
69
72
 
70
73
  desc "runner", "Run Ruby code in the context of Jets app non-interactively"
@@ -35,6 +35,7 @@ Jets.application.configure do
35
35
  # security_group_ids: %w[sg-1 sg-2],
36
36
  # subnet_ids: %w[subnet-1 subnet-2],
37
37
  # }
38
+ # config.function.ephemeral_storage = { size: 1536 }
38
39
  # The config.function settings to the CloudFormation Lambda Function properties.
39
40
  # http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html
40
41
  # Underscored format can be used for keys to make it look more ruby-ish.
@@ -91,10 +91,22 @@ class BasePathMapping
91
91
  end
92
92
 
93
93
  def apigateway
94
- @apigateway ||= Aws::APIGateway::Client.new
94
+ @apigateway ||= Aws::APIGateway::Client.new(aws_options)
95
95
  end
96
96
 
97
97
  def cfn
98
- @cfn ||= Aws::CloudFormation::Client.new
98
+ @cfn ||= Aws::CloudFormation::Client.new(aws_options)
99
+ end
100
+
101
+ def aws_options
102
+ options = {
103
+ retry_limit: 7, # default: 3
104
+ retry_base_delay: 0.6, # default: 0.3
105
+ }
106
+ options.merge!(
107
+ log_level: :debug,
108
+ logger: Logger.new($stdout),
109
+ ) if ENV['JETS_DEBUG_AWS_SDK']
110
+ options
99
111
  end
100
112
  end
data/lib/jets/job/base.rb CHANGED
@@ -13,6 +13,8 @@ module Jets::Job
13
13
  include Helpers::KinesisEventHelper
14
14
  include Helpers::LogEventHelper
15
15
  include Helpers::S3EventHelper
16
+ include Helpers::SnsEventHelper
17
+ include Helpers::SqsEventHelper
16
18
 
17
19
  # Tracks bucket each time an s3_event is declared
18
20
  # Map of bucket_name => stack_name (nested part)
@@ -0,0 +1,8 @@
1
+ module Jets::Job::Helpers
2
+ module SnsEventHelper
3
+ def sns_event_payload
4
+ message = event&.dig("Records", 0, "Sns", "Message")
5
+ @sns_event_payload ||= ActiveSupport::HashWithIndifferentAccess.new(JSON.load(message))
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Jets::Job::Helpers
2
+ module SqsEventHelper
3
+ def sqs_event_payload
4
+ message = event&.dig("Records", 0, "body")
5
+ @sqs_event_payload ||= ActiveSupport::HashWithIndifferentAccess.new(JSON.parse(message))
6
+ end
7
+ end
8
+ end
@@ -57,6 +57,7 @@ module Jets::Lambda::Dsl
57
57
  PROPERTIES = %W[
58
58
  dead_letter_config
59
59
  description
60
+ ephemeral_storage
60
61
  handler
61
62
  kms_key_arn
62
63
  memory_size
@@ -33,6 +33,7 @@ module Jets::Stack::Main::Dsl
33
33
  runtime: :ruby,
34
34
  timeout: Jets.config.function.timeout,
35
35
  memory_size: Jets.config.function.memory_size,
36
+ ephemeral_storage: Jets.config.function.ephemeral_storage,
36
37
  description: description,
37
38
  }
38
39
 
data/lib/jets/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Jets
2
- VERSION = "3.1.1"
2
+ VERSION = "3.1.4"
3
3
  end
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: 3.1.1
4
+ version: 3.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-18 00:00:00.000000000 Z
11
+ date: 2022-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -252,16 +252,16 @@ dependencies:
252
252
  name: cfn_camelizer
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
- - - "~>"
255
+ - - ">="
256
256
  - !ruby/object:Gem::Version
257
- version: 0.4.6
257
+ version: 0.4.9
258
258
  type: :runtime
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
- - - "~>"
262
+ - - ">="
263
263
  - !ruby/object:Gem::Version
264
- version: 0.4.6
264
+ version: 0.4.9
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: cfn_response
267
267
  requirement: !ruby/object:Gem::Requirement
@@ -434,16 +434,16 @@ dependencies:
434
434
  name: serverlessgems
435
435
  requirement: !ruby/object:Gem::Requirement
436
436
  requirements:
437
- - - "~>"
437
+ - - ">="
438
438
  - !ruby/object:Gem::Version
439
- version: 0.1.4
439
+ version: 0.2.0
440
440
  type: :runtime
441
441
  prerelease: false
442
442
  version_requirements: !ruby/object:Gem::Requirement
443
443
  requirements:
444
- - - "~>"
444
+ - - ">="
445
445
  - !ruby/object:Gem::Version
446
- version: 0.1.4
446
+ version: 0.2.0
447
447
  - !ruby/object:Gem::Dependency
448
448
  name: shotgun
449
449
  requirement: !ruby/object:Gem::Requirement
@@ -490,16 +490,16 @@ dependencies:
490
490
  name: zeitwerk
491
491
  requirement: !ruby/object:Gem::Requirement
492
492
  requirements:
493
- - - "~>"
493
+ - - ">="
494
494
  - !ruby/object:Gem::Version
495
- version: 2.5.0
495
+ version: 2.6.0
496
496
  type: :runtime
497
497
  prerelease: false
498
498
  version_requirements: !ruby/object:Gem::Requirement
499
499
  requirements:
500
- - - "~>"
500
+ - - ">="
501
501
  - !ruby/object:Gem::Version
502
- version: 2.5.0
502
+ version: 2.6.0
503
503
  - !ruby/object:Gem::Dependency
504
504
  name: bundler
505
505
  requirement: !ruby/object:Gem::Requirement
@@ -590,6 +590,7 @@ files:
590
590
  - ".cody/docs/bin/subnav.sh"
591
591
  - ".cody/docs/buildspec.yml"
592
592
  - ".cody/docs/project.rb"
593
+ - ".github/FUNDING.yml"
593
594
  - ".github/ISSUE_TEMPLATE.md"
594
595
  - ".github/ISSUE_TEMPLATE/bug_report.md"
595
596
  - ".github/ISSUE_TEMPLATE/documentation.md"
@@ -863,6 +864,8 @@ files:
863
864
  - lib/jets/job/helpers/kinesis_event_helper.rb
864
865
  - lib/jets/job/helpers/log_event_helper.rb
865
866
  - lib/jets/job/helpers/s3_event_helper.rb
867
+ - lib/jets/job/helpers/sns_event_helper.rb
868
+ - lib/jets/job/helpers/sqs_event_helper.rb
866
869
  - lib/jets/klass.rb
867
870
  - lib/jets/lambda/dsl.rb
868
871
  - lib/jets/lambda/function.rb
@@ -1098,7 +1101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1098
1101
  - !ruby/object:Gem::Version
1099
1102
  version: '0'
1100
1103
  requirements: []
1101
- rubygems_version: 3.1.6
1104
+ rubygems_version: 3.3.10
1102
1105
  signing_key:
1103
1106
  specification_version: 4
1104
1107
  summary: Ruby Serverless Framework