lamby 2.5.1 → 2.6.2
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 +4 -4
- data/CHANGELOG.md +65 -47
- data/Dockerfile +0 -5
- data/Gemfile.lock +99 -96
- data/Rakefile +9 -1
- data/bin/_test +1 -0
- data/lib/lamby/handler.rb +18 -5
- data/lib/lamby/rack_alb.rb +5 -2
- data/lib/lamby/rack_http.rb +12 -0
- data/lib/lamby/rack_rest.rb +5 -0
- data/lib/lamby/ssm_parameter_store.rb +1 -1
- data/lib/lamby/templates/alb/_deploy +14 -4
- data/lib/lamby/templates/alb/deploy +4 -0
- data/lib/lamby/templates/http/_deploy +14 -4
- data/lib/lamby/templates/http/deploy +4 -0
- data/lib/lamby/templates/rest/_deploy +14 -4
- data/lib/lamby/templates/rest/deploy +4 -0
- data/lib/lamby/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6b47ebf99fa0cfc8d6f88c652d05cf97f30d00c119081d2068418731faf88967
|
|
4
|
+
data.tar.gz: ae3e41ee1ff96c3a9868f1d25b9f030d0c971113827fb2751b66bed8e89bf46c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: de331c42dc947a6cfe15929c24c3b0c00c5bc81b89a7782149dd3c985fb4894f2ad5d2bf3f789ff699865f1982b690d43c8b983f0c553cf078b3567394508ea0
|
|
7
|
+
data.tar.gz: 992d10b1e0c9e39df59ae2b96e1406d6a53fc331f3eae92ea6d731e89bb43c754bd97cce60817277eedb65ad436ac15beea55ad55c36cb4a3d95486071d6efff
|
data/CHANGELOG.md
CHANGED
|
@@ -1,57 +1,88 @@
|
|
|
1
1
|
<!-- -*- mode: markdown -*- -->
|
|
2
|
+
|
|
2
3
|
# Keep A Changelog!
|
|
3
4
|
|
|
4
5
|
See this http://keepachangelog.com link for information on how we want this documented formatted.
|
|
5
6
|
|
|
7
|
+
## v2.6.2
|
|
8
|
+
|
|
9
|
+
- Fixed Rack::Deflate usage with an ALB.
|
|
10
|
+
|
|
11
|
+
## v2.6.1
|
|
12
|
+
|
|
13
|
+
#### Fixed
|
|
14
|
+
|
|
15
|
+
- Support redirects with empty response body.
|
|
16
|
+
|
|
17
|
+
#### Added
|
|
18
|
+
|
|
19
|
+
- Tests for enabling Rack::Deflate middleware by passing RACK_DEFLATE_ENABLED env variable.
|
|
20
|
+
|
|
21
|
+
## v2.6.0
|
|
22
|
+
|
|
23
|
+
#### Fixed
|
|
24
|
+
|
|
25
|
+
- Support multiple Set-Cookie headers for all rest types.
|
|
26
|
+
|
|
27
|
+
## v2.5.3
|
|
28
|
+
|
|
29
|
+
#### Fixed
|
|
30
|
+
|
|
31
|
+
- Base64 encode response body if the rack response is gzip or brotli compressed.
|
|
32
|
+
|
|
33
|
+
## v2.5.2
|
|
34
|
+
|
|
35
|
+
- SSM file always overwrites. Fixes #65.
|
|
36
|
+
|
|
6
37
|
## v2.5.1
|
|
7
38
|
|
|
8
39
|
#### Fixed
|
|
9
40
|
|
|
10
|
-
|
|
41
|
+
- Quoting in describe-subnets #62 Thanks @atwoodjw
|
|
11
42
|
|
|
12
43
|
## v2.5.0
|
|
13
44
|
|
|
14
45
|
#### Changed
|
|
15
46
|
|
|
16
|
-
|
|
47
|
+
- Install files to favor containers.
|
|
17
48
|
|
|
18
49
|
## v2.2.2
|
|
19
50
|
|
|
20
51
|
#### Changed
|
|
21
52
|
|
|
22
|
-
|
|
53
|
+
- More ActiveSupport removal. Better ENV.to_h.
|
|
23
54
|
|
|
24
55
|
## v2.2.1
|
|
25
56
|
|
|
26
57
|
#### Changed
|
|
27
58
|
|
|
28
|
-
|
|
59
|
+
- More ActiveSupport removal from SsmParameterStore.
|
|
29
60
|
|
|
30
61
|
## v2.2.0
|
|
31
62
|
|
|
32
63
|
#### Changed
|
|
33
64
|
|
|
34
|
-
|
|
35
|
-
|
|
65
|
+
- Remove dependency on `activesupport` for rack-only applications.
|
|
66
|
+
- Remove ActiveSupport artifacts:
|
|
36
67
|
- Replace `strip_heredoc` with `<<~HEREDOC`.
|
|
37
68
|
- Remove instances of `Object#try`, replace with `&.`.
|
|
38
69
|
- Use `Rack::Utils.build_nested_query` in place of `Object#to_query`.
|
|
39
70
|
- Replace `Object#present?` with `to_s.empty?`.
|
|
40
71
|
- Replace `Array.wrap` with `Array[obj].compact.flatten`.
|
|
41
|
-
|
|
72
|
+
- Add a check against the `RAILS_ENV` AND `RACK_ENV` environment
|
|
42
73
|
variables prior to enabling debug mode.
|
|
43
74
|
|
|
44
75
|
## v2.1.0
|
|
45
76
|
|
|
46
77
|
#### Changed
|
|
47
78
|
|
|
48
|
-
|
|
79
|
+
- Only load the railtie if `Rails` is defined.
|
|
49
80
|
|
|
50
81
|
## v2.0.1
|
|
51
82
|
|
|
52
83
|
#### Changed
|
|
53
84
|
|
|
54
|
-
|
|
85
|
+
- Remove Rails runtime dep. Only rack is needed.
|
|
55
86
|
|
|
56
87
|
## v2.0.0
|
|
57
88
|
|
|
@@ -59,120 +90,107 @@ Support for new API Gateway HTTP APIs!!!
|
|
|
59
90
|
|
|
60
91
|
#### Changed
|
|
61
92
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
93
|
+
- The `Lamby.handler` must have a `:rack` option. One of `:http`, `:rest`, `:alb`.
|
|
94
|
+
- Renamed template generators to match options above.
|
|
95
|
+
- The `lamby:install` task now defaults to HTTP API.
|
|
96
|
+
- Changed the name of `:api` rack option to `:rest`.
|
|
97
|
+
- Removed `export` from Dotenv files. Better Docker compatability.
|
|
67
98
|
|
|
68
99
|
#### Added
|
|
69
100
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
101
|
+
- New rack handler for HTTP API v1 and v2.
|
|
102
|
+
- Lots of backfill tests for, ALBs & REST APIs.
|
|
73
103
|
|
|
74
104
|
## v1.0.3
|
|
75
105
|
|
|
76
106
|
#### Changed
|
|
77
107
|
|
|
78
|
-
|
|
79
|
-
|
|
108
|
+
- Change shebangs to `#!/usr/bin/env bash`
|
|
80
109
|
|
|
81
110
|
## v1.0.2
|
|
82
111
|
|
|
83
112
|
#### Changed
|
|
84
113
|
|
|
85
|
-
|
|
114
|
+
- Adds an optional 'overwrite' parameter to #to_env.
|
|
86
115
|
|
|
87
116
|
## v1.0.1
|
|
88
117
|
|
|
89
118
|
#### Changed
|
|
90
119
|
|
|
91
|
-
|
|
92
|
-
|
|
120
|
+
- Links in bin/build templates to point to lamby.custominktech.com site.
|
|
93
121
|
|
|
94
122
|
## v1.0.0
|
|
95
123
|
|
|
96
124
|
#### Fixed
|
|
97
125
|
|
|
98
|
-
|
|
99
|
-
|
|
126
|
+
- ALB query params & binary responses. Fixes #38.
|
|
100
127
|
|
|
101
128
|
## v0.6.0
|
|
102
129
|
|
|
103
130
|
#### Added
|
|
104
131
|
|
|
105
|
-
|
|
132
|
+
- APPLICATION LOAD BALANACER SUPPORT!!! The new default. Use `rack: :api` option to handler for API Gateway support.
|
|
106
133
|
|
|
107
134
|
#### Changed
|
|
108
135
|
|
|
109
|
-
|
|
110
|
-
|
|
136
|
+
- Rake task `lamby:install` now defaults to `application_load_balancer`
|
|
111
137
|
|
|
112
138
|
## v0.5.1
|
|
113
139
|
|
|
114
140
|
#### Fixed
|
|
115
141
|
|
|
116
|
-
|
|
117
|
-
|
|
142
|
+
- The .gitignore file template. Fix .aws-sam dir.
|
|
118
143
|
|
|
119
144
|
## v0.5.0
|
|
120
145
|
|
|
121
146
|
#### Added
|
|
122
147
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
148
|
+
- Template generators for first install. Ex: `./bin/rake -r lamby lamby:install:api_gateway`.
|
|
149
|
+
- New `Lamby::SsmParameterStore.get!` helper.
|
|
126
150
|
|
|
127
151
|
## v0.4.1
|
|
128
152
|
|
|
129
153
|
#### Fixed
|
|
130
154
|
|
|
131
|
-
|
|
132
|
-
|
|
155
|
+
- Fix type in v0.4.0 fix below.
|
|
133
156
|
|
|
134
157
|
## v0.4.0
|
|
135
158
|
|
|
136
159
|
#### Fixed
|
|
137
160
|
|
|
138
|
-
|
|
139
|
-
|
|
161
|
+
- File uploads in #33 using `CONTENT_TYPE` and `CONTENT_LENGTH`.
|
|
140
162
|
|
|
141
163
|
## v0.3.2
|
|
142
164
|
|
|
143
165
|
#### Added
|
|
144
166
|
|
|
145
|
-
|
|
146
|
-
|
|
167
|
+
- Pass Request ID for CloudWatch logs. Fixes #30.
|
|
147
168
|
|
|
148
169
|
## v0.3.1
|
|
149
170
|
|
|
150
171
|
#### Changed
|
|
151
172
|
|
|
152
|
-
|
|
153
|
-
|
|
173
|
+
- Docs and SAM template tweaks.
|
|
154
174
|
|
|
155
175
|
## v0.3.0
|
|
156
176
|
|
|
157
177
|
#### Added
|
|
158
178
|
|
|
159
|
-
|
|
160
|
-
|
|
179
|
+
- Secure configs rake task.
|
|
180
|
+
- Project bin setup and tests.
|
|
161
181
|
|
|
162
182
|
#### Changed
|
|
163
183
|
|
|
164
|
-
|
|
165
|
-
|
|
184
|
+
- SAM template tweaks.
|
|
166
185
|
|
|
167
186
|
## v0.2.0
|
|
168
187
|
|
|
169
188
|
#### Changed
|
|
170
189
|
|
|
171
|
-
|
|
172
|
-
|
|
190
|
+
- Simple docs and project re-organization.
|
|
173
191
|
|
|
174
192
|
## v0.1.0
|
|
175
193
|
|
|
176
194
|
#### Added
|
|
177
195
|
|
|
178
|
-
|
|
196
|
+
- New gem and placeholder in rubygems.
|
data/Dockerfile
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
FROM lambci/lambda:build-ruby2.7
|
|
2
2
|
|
|
3
|
-
# Lock down AWS SAM version.
|
|
4
|
-
RUN pip install awscli && \
|
|
5
|
-
pip uninstall --yes aws-sam-cli && \
|
|
6
|
-
pip install aws-sam-cli==0.45.0
|
|
7
|
-
|
|
8
3
|
# Asset Pipeline
|
|
9
4
|
RUN curl -sL https://rpm.nodesource.com/setup_12.x | bash - && \
|
|
10
5
|
yum install -y nodejs
|
data/Gemfile.lock
CHANGED
|
@@ -1,155 +1,158 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
lamby (2.
|
|
4
|
+
lamby (2.6.2)
|
|
5
5
|
rack
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
actioncable (6.
|
|
11
|
-
actionpack (= 6.
|
|
10
|
+
actioncable (6.1.3.1)
|
|
11
|
+
actionpack (= 6.1.3.1)
|
|
12
|
+
activesupport (= 6.1.3.1)
|
|
12
13
|
nio4r (~> 2.0)
|
|
13
14
|
websocket-driver (>= 0.6.1)
|
|
14
|
-
actionmailbox (6.
|
|
15
|
-
actionpack (= 6.
|
|
16
|
-
activejob (= 6.
|
|
17
|
-
activerecord (= 6.
|
|
18
|
-
activestorage (= 6.
|
|
19
|
-
activesupport (= 6.
|
|
15
|
+
actionmailbox (6.1.3.1)
|
|
16
|
+
actionpack (= 6.1.3.1)
|
|
17
|
+
activejob (= 6.1.3.1)
|
|
18
|
+
activerecord (= 6.1.3.1)
|
|
19
|
+
activestorage (= 6.1.3.1)
|
|
20
|
+
activesupport (= 6.1.3.1)
|
|
20
21
|
mail (>= 2.7.1)
|
|
21
|
-
actionmailer (6.
|
|
22
|
-
actionpack (= 6.
|
|
23
|
-
actionview (= 6.
|
|
24
|
-
activejob (= 6.
|
|
22
|
+
actionmailer (6.1.3.1)
|
|
23
|
+
actionpack (= 6.1.3.1)
|
|
24
|
+
actionview (= 6.1.3.1)
|
|
25
|
+
activejob (= 6.1.3.1)
|
|
26
|
+
activesupport (= 6.1.3.1)
|
|
25
27
|
mail (~> 2.5, >= 2.5.4)
|
|
26
28
|
rails-dom-testing (~> 2.0)
|
|
27
|
-
actionpack (6.
|
|
28
|
-
actionview (= 6.
|
|
29
|
-
activesupport (= 6.
|
|
30
|
-
rack (~> 2.0, >= 2.0.
|
|
29
|
+
actionpack (6.1.3.1)
|
|
30
|
+
actionview (= 6.1.3.1)
|
|
31
|
+
activesupport (= 6.1.3.1)
|
|
32
|
+
rack (~> 2.0, >= 2.0.9)
|
|
31
33
|
rack-test (>= 0.6.3)
|
|
32
34
|
rails-dom-testing (~> 2.0)
|
|
33
35
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
34
|
-
actiontext (6.
|
|
35
|
-
actionpack (= 6.
|
|
36
|
-
activerecord (= 6.
|
|
37
|
-
activestorage (= 6.
|
|
38
|
-
activesupport (= 6.
|
|
36
|
+
actiontext (6.1.3.1)
|
|
37
|
+
actionpack (= 6.1.3.1)
|
|
38
|
+
activerecord (= 6.1.3.1)
|
|
39
|
+
activestorage (= 6.1.3.1)
|
|
40
|
+
activesupport (= 6.1.3.1)
|
|
39
41
|
nokogiri (>= 1.8.5)
|
|
40
|
-
actionview (6.
|
|
41
|
-
activesupport (= 6.
|
|
42
|
+
actionview (6.1.3.1)
|
|
43
|
+
activesupport (= 6.1.3.1)
|
|
42
44
|
builder (~> 3.1)
|
|
43
45
|
erubi (~> 1.4)
|
|
44
46
|
rails-dom-testing (~> 2.0)
|
|
45
47
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
46
|
-
activejob (6.
|
|
47
|
-
activesupport (= 6.
|
|
48
|
+
activejob (6.1.3.1)
|
|
49
|
+
activesupport (= 6.1.3.1)
|
|
48
50
|
globalid (>= 0.3.6)
|
|
49
|
-
activemodel (6.
|
|
50
|
-
activesupport (= 6.
|
|
51
|
-
activerecord (6.
|
|
52
|
-
activemodel (= 6.
|
|
53
|
-
activesupport (= 6.
|
|
54
|
-
activestorage (6.
|
|
55
|
-
actionpack (= 6.
|
|
56
|
-
activejob (= 6.
|
|
57
|
-
activerecord (= 6.
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
activemodel (6.1.3.1)
|
|
52
|
+
activesupport (= 6.1.3.1)
|
|
53
|
+
activerecord (6.1.3.1)
|
|
54
|
+
activemodel (= 6.1.3.1)
|
|
55
|
+
activesupport (= 6.1.3.1)
|
|
56
|
+
activestorage (6.1.3.1)
|
|
57
|
+
actionpack (= 6.1.3.1)
|
|
58
|
+
activejob (= 6.1.3.1)
|
|
59
|
+
activerecord (= 6.1.3.1)
|
|
60
|
+
activesupport (= 6.1.3.1)
|
|
61
|
+
marcel (~> 1.0.0)
|
|
62
|
+
mini_mime (~> 1.0.2)
|
|
63
|
+
activesupport (6.1.3.1)
|
|
60
64
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
61
|
-
i18n (>=
|
|
62
|
-
minitest (
|
|
63
|
-
tzinfo (~>
|
|
64
|
-
zeitwerk (~> 2.
|
|
65
|
-
aws-eventstream (1.
|
|
66
|
-
aws-partitions (1.
|
|
67
|
-
aws-sdk-core (3.
|
|
68
|
-
aws-eventstream (~> 1
|
|
65
|
+
i18n (>= 1.6, < 2)
|
|
66
|
+
minitest (>= 5.1)
|
|
67
|
+
tzinfo (~> 2.0)
|
|
68
|
+
zeitwerk (~> 2.3)
|
|
69
|
+
aws-eventstream (1.1.1)
|
|
70
|
+
aws-partitions (1.446.0)
|
|
71
|
+
aws-sdk-core (3.114.0)
|
|
72
|
+
aws-eventstream (~> 1, >= 1.0.2)
|
|
69
73
|
aws-partitions (~> 1, >= 1.239.0)
|
|
70
74
|
aws-sigv4 (~> 1.1)
|
|
71
75
|
jmespath (~> 1.0)
|
|
72
|
-
aws-sdk-ssm (1.
|
|
73
|
-
aws-sdk-core (~> 3, >= 3.
|
|
76
|
+
aws-sdk-ssm (1.108.0)
|
|
77
|
+
aws-sdk-core (~> 3, >= 3.112.0)
|
|
74
78
|
aws-sigv4 (~> 1.1)
|
|
75
|
-
aws-sigv4 (1.
|
|
76
|
-
aws-eventstream (~> 1
|
|
79
|
+
aws-sigv4 (1.2.3)
|
|
80
|
+
aws-eventstream (~> 1, >= 1.0.2)
|
|
77
81
|
builder (3.2.4)
|
|
78
|
-
coderay (1.1.
|
|
79
|
-
concurrent-ruby (1.1.
|
|
82
|
+
coderay (1.1.3)
|
|
83
|
+
concurrent-ruby (1.1.8)
|
|
80
84
|
crass (1.0.6)
|
|
81
|
-
erubi (1.
|
|
85
|
+
erubi (1.10.0)
|
|
82
86
|
globalid (0.4.2)
|
|
83
87
|
activesupport (>= 4.2.0)
|
|
84
|
-
i18n (1.8.
|
|
88
|
+
i18n (1.8.10)
|
|
85
89
|
concurrent-ruby (~> 1.0)
|
|
86
90
|
jmespath (1.4.0)
|
|
87
|
-
loofah (2.
|
|
91
|
+
loofah (2.9.1)
|
|
88
92
|
crass (~> 1.0.2)
|
|
89
93
|
nokogiri (>= 1.5.9)
|
|
90
94
|
mail (2.7.1)
|
|
91
95
|
mini_mime (>= 0.1.1)
|
|
92
|
-
marcel (0.
|
|
93
|
-
mimemagic (~> 0.3.2)
|
|
96
|
+
marcel (1.0.1)
|
|
94
97
|
method_source (1.0.0)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
minitest (
|
|
99
|
-
minitest-focus (1.1.2)
|
|
98
|
+
mini_mime (1.0.3)
|
|
99
|
+
mini_portile2 (2.5.0)
|
|
100
|
+
minitest (5.14.4)
|
|
101
|
+
minitest-focus (1.2.1)
|
|
100
102
|
minitest (>= 4, < 6)
|
|
101
|
-
mocha (1.
|
|
102
|
-
nio4r (2.5.
|
|
103
|
-
nokogiri (1.
|
|
104
|
-
mini_portile2 (~> 2.
|
|
105
|
-
|
|
103
|
+
mocha (1.12.0)
|
|
104
|
+
nio4r (2.5.7)
|
|
105
|
+
nokogiri (1.11.3)
|
|
106
|
+
mini_portile2 (~> 2.5.0)
|
|
107
|
+
racc (~> 1.4)
|
|
108
|
+
pry (0.14.1)
|
|
106
109
|
coderay (~> 1.1)
|
|
107
110
|
method_source (~> 1.0)
|
|
108
|
-
|
|
111
|
+
racc (1.5.2)
|
|
112
|
+
rack (2.2.3)
|
|
109
113
|
rack-test (1.1.0)
|
|
110
114
|
rack (>= 1.0, < 3)
|
|
111
|
-
rails (6.
|
|
112
|
-
actioncable (= 6.
|
|
113
|
-
actionmailbox (= 6.
|
|
114
|
-
actionmailer (= 6.
|
|
115
|
-
actionpack (= 6.
|
|
116
|
-
actiontext (= 6.
|
|
117
|
-
actionview (= 6.
|
|
118
|
-
activejob (= 6.
|
|
119
|
-
activemodel (= 6.
|
|
120
|
-
activerecord (= 6.
|
|
121
|
-
activestorage (= 6.
|
|
122
|
-
activesupport (= 6.
|
|
123
|
-
bundler (>= 1.
|
|
124
|
-
railties (= 6.
|
|
115
|
+
rails (6.1.3.1)
|
|
116
|
+
actioncable (= 6.1.3.1)
|
|
117
|
+
actionmailbox (= 6.1.3.1)
|
|
118
|
+
actionmailer (= 6.1.3.1)
|
|
119
|
+
actionpack (= 6.1.3.1)
|
|
120
|
+
actiontext (= 6.1.3.1)
|
|
121
|
+
actionview (= 6.1.3.1)
|
|
122
|
+
activejob (= 6.1.3.1)
|
|
123
|
+
activemodel (= 6.1.3.1)
|
|
124
|
+
activerecord (= 6.1.3.1)
|
|
125
|
+
activestorage (= 6.1.3.1)
|
|
126
|
+
activesupport (= 6.1.3.1)
|
|
127
|
+
bundler (>= 1.15.0)
|
|
128
|
+
railties (= 6.1.3.1)
|
|
125
129
|
sprockets-rails (>= 2.0.0)
|
|
126
130
|
rails-dom-testing (2.0.3)
|
|
127
131
|
activesupport (>= 4.2.0)
|
|
128
132
|
nokogiri (>= 1.6)
|
|
129
133
|
rails-html-sanitizer (1.3.0)
|
|
130
134
|
loofah (~> 2.3)
|
|
131
|
-
railties (6.
|
|
132
|
-
actionpack (= 6.
|
|
133
|
-
activesupport (= 6.
|
|
135
|
+
railties (6.1.3.1)
|
|
136
|
+
actionpack (= 6.1.3.1)
|
|
137
|
+
activesupport (= 6.1.3.1)
|
|
134
138
|
method_source
|
|
135
139
|
rake (>= 0.8.7)
|
|
136
|
-
thor (
|
|
137
|
-
rake (13.0.
|
|
138
|
-
sprockets (4.0.
|
|
140
|
+
thor (~> 1.0)
|
|
141
|
+
rake (13.0.3)
|
|
142
|
+
sprockets (4.0.2)
|
|
139
143
|
concurrent-ruby (~> 1.0)
|
|
140
144
|
rack (> 1, < 3)
|
|
141
|
-
sprockets-rails (3.2.
|
|
145
|
+
sprockets-rails (3.2.2)
|
|
142
146
|
actionpack (>= 4.0)
|
|
143
147
|
activesupport (>= 4.0)
|
|
144
148
|
sprockets (>= 3.0.0)
|
|
145
|
-
thor (1.0
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
websocket-driver (0.7.1)
|
|
149
|
+
thor (1.1.0)
|
|
150
|
+
tzinfo (2.0.4)
|
|
151
|
+
concurrent-ruby (~> 1.0)
|
|
152
|
+
websocket-driver (0.7.3)
|
|
150
153
|
websocket-extensions (>= 0.1.0)
|
|
151
|
-
websocket-extensions (0.1.
|
|
152
|
-
zeitwerk (2.
|
|
154
|
+
websocket-extensions (0.1.5)
|
|
155
|
+
zeitwerk (2.4.2)
|
|
153
156
|
|
|
154
157
|
PLATFORMS
|
|
155
158
|
ruby
|
|
@@ -166,4 +169,4 @@ DEPENDENCIES
|
|
|
166
169
|
rake
|
|
167
170
|
|
|
168
171
|
BUNDLED WITH
|
|
169
|
-
2.
|
|
172
|
+
2.2.15
|
data/Rakefile
CHANGED
|
@@ -10,4 +10,12 @@ Rake::TestTask.new(:test) do |t|
|
|
|
10
10
|
t.warning = false
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Rake::TestTask.new(:test_deflate) do |t|
|
|
14
|
+
t.libs << "test"
|
|
15
|
+
t.libs << "lib"
|
|
16
|
+
t.test_files = FileList["test/rack_deflate_test.rb"]
|
|
17
|
+
t.verbose = false
|
|
18
|
+
t.warning = false
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
task :default => [:test, :test_deflate]
|
data/bin/_test
CHANGED
data/lib/lamby/handler.rb
CHANGED
|
@@ -31,23 +31,32 @@ module Lamby
|
|
|
31
31
|
@headers
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
+
def set_cookies
|
|
35
|
+
return @set_cookies if defined?(@set_cookies)
|
|
36
|
+
@set_cookies = if @headers && @headers['Set-Cookie']
|
|
37
|
+
@headers.delete('Set-Cookie').split("\n")
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
34
41
|
def body
|
|
35
42
|
@rbody ||= ''.tap do |rbody|
|
|
36
|
-
@body.each { |part| rbody << part }
|
|
43
|
+
@body.each { |part| rbody << part if part }
|
|
37
44
|
end
|
|
38
45
|
end
|
|
39
46
|
|
|
40
47
|
def call
|
|
41
48
|
return self if @called
|
|
42
49
|
@status, @headers, @body = call_app
|
|
50
|
+
set_cookies
|
|
43
51
|
@called = true
|
|
44
52
|
self
|
|
45
53
|
end
|
|
46
54
|
|
|
47
|
-
def base64_encodeable?
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
def base64_encodeable?(hdrs = @headers)
|
|
56
|
+
hdrs && (
|
|
57
|
+
hdrs['Content-Transfer-Encoding'] == 'binary' ||
|
|
58
|
+
content_encoding_compressed?(hdrs) ||
|
|
59
|
+
hdrs['X-Lamby-Base64'] == '1'
|
|
51
60
|
)
|
|
52
61
|
end
|
|
53
62
|
|
|
@@ -80,5 +89,9 @@ module Lamby
|
|
|
80
89
|
end
|
|
81
90
|
end
|
|
82
91
|
|
|
92
|
+
def content_encoding_compressed?(hdrs)
|
|
93
|
+
content_encoding_header = hdrs['Content-Encoding'] || ''
|
|
94
|
+
content_encoding_header.split(', ').any? { |h| ['br', 'gzip'].include?(h) }
|
|
95
|
+
end
|
|
83
96
|
end
|
|
84
97
|
end
|
data/lib/lamby/rack_alb.rb
CHANGED
|
@@ -11,9 +11,12 @@ module Lamby
|
|
|
11
11
|
|
|
12
12
|
def response(handler)
|
|
13
13
|
hhdrs = handler.headers
|
|
14
|
-
|
|
14
|
+
if multi_value?
|
|
15
|
+
multivalue_headers = hhdrs.transform_values { |v| Array[v].compact.flatten }
|
|
16
|
+
multivalue_headers['Set-Cookie'] = handler.set_cookies if handler.set_cookies
|
|
17
|
+
end
|
|
15
18
|
status_description = "#{handler.status} #{::Rack::Utils::HTTP_STATUS_CODES[handler.status]}"
|
|
16
|
-
base64_encode = hhdrs
|
|
19
|
+
base64_encode = handler.base64_encodeable?(hhdrs)
|
|
17
20
|
body = Base64.strict_encode64(handler.body) if base64_encode
|
|
18
21
|
{ multiValueHeaders: multivalue_headers,
|
|
19
22
|
statusDescription: status_description,
|
data/lib/lamby/rack_http.rb
CHANGED
|
@@ -6,6 +6,15 @@ module Lamby
|
|
|
6
6
|
{ isBase64Encoded: true, body: handler.body64 }
|
|
7
7
|
else
|
|
8
8
|
super
|
|
9
|
+
end.tap do |r|
|
|
10
|
+
if cookies = handler.set_cookies
|
|
11
|
+
if payload_version_one?
|
|
12
|
+
r[:multiValueHeaders] ||= {}
|
|
13
|
+
r[:multiValueHeaders]['Set-Cookie'] = cookies
|
|
14
|
+
else
|
|
15
|
+
r[:cookies] = cookies
|
|
16
|
+
end
|
|
17
|
+
end
|
|
9
18
|
end
|
|
10
19
|
end
|
|
11
20
|
|
|
@@ -79,6 +88,9 @@ module Lamby
|
|
|
79
88
|
'HTTP/1.1'
|
|
80
89
|
end
|
|
81
90
|
|
|
91
|
+
def payload_version_one?
|
|
92
|
+
event['version'] == '1.0'
|
|
93
|
+
end
|
|
82
94
|
|
|
83
95
|
end
|
|
84
96
|
end
|
data/lib/lamby/rack_rest.rb
CHANGED
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -e
|
|
3
3
|
|
|
4
|
+
export DEPLOYMENT_NAME="myorg/APPNAMEHERE"
|
|
4
5
|
export RAILS_ENV=${RAILS_ENV:="production"}
|
|
5
6
|
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:=us-east-1}
|
|
6
|
-
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.$
|
|
7
|
+
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.${DEPLOYMENT_NAME/\//-}"}
|
|
7
8
|
|
|
8
9
|
# https://github.com/aws/aws-sam-cli/issues/2447
|
|
9
10
|
export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
|
|
10
|
-
export IMAGE_REPOSITORY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com
|
|
11
|
+
export IMAGE_REPOSITORY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/${DEPLOYMENT_NAME}"
|
|
11
12
|
|
|
13
|
+
echo '== Creating ECR repository =='
|
|
14
|
+
echo 'You can safely ignore any RepositoryAlreadyExistsException errors...'
|
|
15
|
+
aws ecr create-repository \
|
|
16
|
+
--repository-name "$DEPLOYMENT_NAME" \
|
|
17
|
+
--image-tag-mutability MUTABLE \
|
|
18
|
+
--image-scanning-configuration scanOnPush=true \
|
|
19
|
+
--region "$AWS_DEFAULT_REGION" || true
|
|
20
|
+
|
|
21
|
+
# Build our application code into a deployment folder
|
|
12
22
|
./bin/_build
|
|
13
23
|
|
|
14
24
|
export VPCID=${VPCID:=$(
|
|
@@ -37,13 +47,13 @@ sam package \
|
|
|
37
47
|
--output-template-file ./.aws-sam/build/packaged.yaml \
|
|
38
48
|
--image-repository "$IMAGE_REPOSITORY" \
|
|
39
49
|
--s3-bucket "${CLOUDFORMATION_BUCKET}" \
|
|
40
|
-
--s3-prefix "
|
|
50
|
+
--s3-prefix "${DEPLOYMENT_NAME/\//-}-${RAILS_ENV}"
|
|
41
51
|
|
|
42
52
|
echo "== SAM deploy..."
|
|
43
53
|
sam deploy \
|
|
44
54
|
--region "$AWS_DEFAULT_REGION" \
|
|
45
55
|
--template-file ./.aws-sam/build/packaged.yaml \
|
|
46
|
-
--stack-name "
|
|
56
|
+
--stack-name "${DEPLOYMENT_NAME/\//-}-${RAILS_ENV}" \
|
|
47
57
|
--image-repository "$IMAGE_REPOSITORY" \
|
|
48
58
|
--capabilities "CAPABILITY_IAM" \
|
|
49
59
|
--parameter-overrides \
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -e
|
|
3
3
|
|
|
4
|
+
export DEPLOYMENT_NAME="myorg/APPNAMEHERE"
|
|
4
5
|
export RAILS_ENV=${RAILS_ENV:="production"}
|
|
5
6
|
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:=us-east-1}
|
|
6
|
-
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.$
|
|
7
|
+
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.${DEPLOYMENT_NAME/\//-}"}
|
|
7
8
|
|
|
8
9
|
# https://github.com/aws/aws-sam-cli/issues/2447
|
|
9
10
|
export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
|
|
10
|
-
export IMAGE_REPOSITORY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com
|
|
11
|
+
export IMAGE_REPOSITORY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/${DEPLOYMENT_NAME}"
|
|
11
12
|
|
|
13
|
+
echo '== Creating ECR repository =='
|
|
14
|
+
echo 'You can safely ignore any RepositoryAlreadyExistsException errors...'
|
|
15
|
+
aws ecr create-repository \
|
|
16
|
+
--repository-name "$DEPLOYMENT_NAME" \
|
|
17
|
+
--image-tag-mutability MUTABLE \
|
|
18
|
+
--image-scanning-configuration scanOnPush=true \
|
|
19
|
+
--region "$AWS_DEFAULT_REGION" || true
|
|
20
|
+
|
|
21
|
+
# Build our application code into a deployment folder
|
|
12
22
|
./bin/_build
|
|
13
23
|
|
|
14
24
|
sam build \
|
|
@@ -22,13 +32,13 @@ sam package \
|
|
|
22
32
|
--output-template-file ./.aws-sam/build/packaged.yaml \
|
|
23
33
|
--image-repository "$IMAGE_REPOSITORY" \
|
|
24
34
|
--s3-bucket "${CLOUDFORMATION_BUCKET}" \
|
|
25
|
-
--s3-prefix "
|
|
35
|
+
--s3-prefix "${DEPLOYMENT_NAME/\//-}-${RAILS_ENV}"
|
|
26
36
|
|
|
27
37
|
echo "== SAM deploy..."
|
|
28
38
|
sam deploy \
|
|
29
39
|
--region "$AWS_DEFAULT_REGION" \
|
|
30
40
|
--template-file ./.aws-sam/build/packaged.yaml \
|
|
31
|
-
--stack-name "
|
|
41
|
+
--stack-name "${DEPLOYMENT_NAME/\//-}-${RAILS_ENV}" \
|
|
32
42
|
--image-repository "$IMAGE_REPOSITORY" \
|
|
33
43
|
--capabilities "CAPABILITY_IAM" \
|
|
34
44
|
--parameter-overrides \
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -e
|
|
3
3
|
|
|
4
|
+
export DEPLOYMENT_NAME="myorg/APPNAMEHERE"
|
|
4
5
|
export RAILS_ENV=${RAILS_ENV:="production"}
|
|
5
6
|
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:=us-east-1}
|
|
6
|
-
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.$
|
|
7
|
+
export CLOUDFORMATION_BUCKET=${CLOUDFORMATION_BUCKET:="lamby.cloudformation.${DEPLOYMENT_NAME/\//-}"}
|
|
7
8
|
|
|
8
9
|
# https://github.com/aws/aws-sam-cli/issues/2447
|
|
9
10
|
export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
|
|
10
|
-
export IMAGE_REPOSITORY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com
|
|
11
|
+
export IMAGE_REPOSITORY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/${DEPLOYMENT_NAME}"
|
|
11
12
|
|
|
13
|
+
echo '== Creating ECR repository =='
|
|
14
|
+
echo 'You can safely ignore any RepositoryAlreadyExistsException errors...'
|
|
15
|
+
aws ecr create-repository \
|
|
16
|
+
--repository-name "$DEPLOYMENT_NAME" \
|
|
17
|
+
--image-tag-mutability MUTABLE \
|
|
18
|
+
--image-scanning-configuration scanOnPush=true \
|
|
19
|
+
--region "$AWS_DEFAULT_REGION" || true
|
|
20
|
+
|
|
21
|
+
# Build our application code into a deployment folder
|
|
12
22
|
./bin/_build
|
|
13
23
|
|
|
14
24
|
sam build \
|
|
@@ -22,13 +32,13 @@ sam package \
|
|
|
22
32
|
--output-template-file ./.aws-sam/build/packaged.yaml \
|
|
23
33
|
--image-repository "$IMAGE_REPOSITORY" \
|
|
24
34
|
--s3-bucket "${CLOUDFORMATION_BUCKET}" \
|
|
25
|
-
--s3-prefix "
|
|
35
|
+
--s3-prefix "${DEPLOYMENT_NAME/\//-}-${RAILS_ENV}"
|
|
26
36
|
|
|
27
37
|
echo "== SAM deploy..."
|
|
28
38
|
sam deploy \
|
|
29
39
|
--region "$AWS_DEFAULT_REGION" \
|
|
30
40
|
--template-file ./.aws-sam/build/packaged.yaml \
|
|
31
|
-
--stack-name "
|
|
41
|
+
--stack-name "${DEPLOYMENT_NAME/\//-}-${RAILS_ENV}" \
|
|
32
42
|
--image-repository "$IMAGE_REPOSITORY" \
|
|
33
43
|
--capabilities "CAPABILITY_IAM" \
|
|
34
44
|
--parameter-overrides \
|
data/lib/lamby/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lamby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.6.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ken Collins
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-04-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rack
|