lamby_updated 5.2.1
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 +7 -0
- data/.devcontainer/Dockerfile +1 -0
- data/.devcontainer/devcontainer.json +20 -0
- data/.github/workflows/test.yml +35 -0
- data/.gitignore +15 -0
- data/CHANGELOG.md +364 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +204 -0
- data/LICENSE.txt +21 -0
- data/README.md +37 -0
- data/Rakefile +27 -0
- data/bin/bootstrap +2 -0
- data/bin/console +14 -0
- data/bin/setup +6 -0
- data/bin/test +8 -0
- data/bin/update +5 -0
- data/images/social.png +0 -0
- data/images/social2.png +0 -0
- data/lamby.gemspec +32 -0
- data/lib/lamby/cold_start_metrics.rb +83 -0
- data/lib/lamby/config.rb +86 -0
- data/lib/lamby/debug.rb +47 -0
- data/lib/lamby/handler.rb +137 -0
- data/lib/lamby/logger.rb +18 -0
- data/lib/lamby/proxy_context.rb +25 -0
- data/lib/lamby/proxy_server.rb +36 -0
- data/lib/lamby/rack.rb +115 -0
- data/lib/lamby/rack_alb.rb +82 -0
- data/lib/lamby/rack_http.rb +107 -0
- data/lib/lamby/rack_rest.rb +53 -0
- data/lib/lamby/railtie.rb +9 -0
- data/lib/lamby/ssm_parameter_store.rb +155 -0
- data/lib/lamby/tasks.rake +19 -0
- data/lib/lamby/version.rb +3 -0
- data/lib/lamby.rb +53 -0
- data/vendor/.keep +0 -0
- metadata +233 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ada64f0fcc5827ba566af490ce2ad78a2ff657862eb8e1f70e50d2298f6cd2ec
|
4
|
+
data.tar.gz: ba2e08342f30d72303145d9bdcb512f5d7472dd72e13a2c2bdb2f6a679a0f71c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 47595c1d3f4e024463c5c8b1f0e3f134b537963fcbfacdbee9e79c05f077dbda63855bec70c6662c5d25133eed903eb65dff23e3019733b2d5583e9e28ccfbae
|
7
|
+
data.tar.gz: 76402476451efc40977d3ab3bff2d4ec11ebcd47763d9a427c26b6293448d19a52484bd64c56ae6ce26f0139ff9f2d6182e17cb2cda8ed450e2a45c15674ce42
|
@@ -0,0 +1 @@
|
|
1
|
+
FROM mcr.microsoft.com/devcontainers/ruby:3.1
|
@@ -0,0 +1,20 @@
|
|
1
|
+
{
|
2
|
+
"name": "lamby",
|
3
|
+
"build": {
|
4
|
+
"dockerfile": "Dockerfile"
|
5
|
+
},
|
6
|
+
"features": {
|
7
|
+
"ghcr.io/devcontainers/features/node:latest": {},
|
8
|
+
"ghcr.io/devcontainers/features/docker-in-docker:latest": {},
|
9
|
+
"ghcr.io/devcontainers/features/sshd:latest": {}
|
10
|
+
},
|
11
|
+
"customizations": {
|
12
|
+
"vscode": {
|
13
|
+
"settings": {
|
14
|
+
"editor.formatOnSave": true
|
15
|
+
},
|
16
|
+
"extensions": []
|
17
|
+
}
|
18
|
+
},
|
19
|
+
"remoteUser": "vscode"
|
20
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
name: CI/CD
|
2
|
+
on: [push]
|
3
|
+
jobs:
|
4
|
+
image:
|
5
|
+
name: Image
|
6
|
+
runs-on: ubuntu-20.04
|
7
|
+
steps:
|
8
|
+
- uses: actions/checkout@v3
|
9
|
+
- uses: docker/login-action@v2
|
10
|
+
with:
|
11
|
+
registry: ghcr.io
|
12
|
+
username: ${{ github.repository_owner }}
|
13
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
14
|
+
- uses: devcontainers/ci@v0.3
|
15
|
+
with:
|
16
|
+
push: always
|
17
|
+
imageName: ghcr.io/rails-lambda/lamby-devcontainer
|
18
|
+
cacheFrom: ghcr.io/rails-lambda/lamby-devcontainer
|
19
|
+
runCmd: echo DONE!
|
20
|
+
test:
|
21
|
+
runs-on: ubuntu-20.04
|
22
|
+
needs: image
|
23
|
+
steps:
|
24
|
+
- name: Checkout
|
25
|
+
uses: actions/checkout@v3
|
26
|
+
- name: Setup & Test
|
27
|
+
uses: devcontainers/ci@v0.3
|
28
|
+
with:
|
29
|
+
push: never
|
30
|
+
cacheFrom: ghcr.io/rails-lambda/lamby-devcontainer
|
31
|
+
env: |
|
32
|
+
CI
|
33
|
+
runCmd: |
|
34
|
+
./bin/setup
|
35
|
+
./bin/test
|
data/.gitignore
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
/.bundle/
|
2
|
+
/.yardoc
|
3
|
+
/_yardoc/
|
4
|
+
/coverage/
|
5
|
+
/pkg/
|
6
|
+
/spec/reports/
|
7
|
+
/tmp/
|
8
|
+
/vendor/bundle
|
9
|
+
test/dummy_app/.gitignore
|
10
|
+
test/dummy_app/app.rb
|
11
|
+
test/dummy_app/template.yaml
|
12
|
+
test/dummy_app/bin/build
|
13
|
+
test/dummy_app/bin/deploy
|
14
|
+
test/dummy_app/tmp
|
15
|
+
test/dummy_app/log/**/*
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,364 @@
|
|
1
|
+
# Keep A Changelog!
|
2
|
+
|
3
|
+
See this http://keepachangelog.com link for information on how we want this documented formatted.
|
4
|
+
|
5
|
+
## v5.2.0
|
6
|
+
|
7
|
+
### Fixed
|
8
|
+
|
9
|
+
- Safely Pass Percent Symbols in Paths Fixes #170
|
10
|
+
|
11
|
+
## v5.1.0
|
12
|
+
|
13
|
+
### Added
|
14
|
+
|
15
|
+
- New CloudWatch cold start metrics. Defaults to off. Enable with `config.cold_start_metrics = true`.
|
16
|
+
|
17
|
+
## v5.0.0
|
18
|
+
|
19
|
+
### Changed
|
20
|
+
|
21
|
+
- ⚠️ Breaking Changes ⚠️
|
22
|
+
- Remove Lamby::Runner & Lamby::Command in favor of LambdaConsole Ruby gem.
|
23
|
+
- New runner pattern exceptions from above. Now: LambdaConsole::Run::UnknownCommandPattern
|
24
|
+
- Switch your own runner events to new https://github.com/rails-lambda/lambda-console spec.
|
25
|
+
|
26
|
+
## v4.3.1, v4.3.2
|
27
|
+
|
28
|
+
### Changed
|
29
|
+
|
30
|
+
- Command response will be #inspect for every command.
|
31
|
+
- Added x-lambda-console option to the event.
|
32
|
+
|
33
|
+
## v4.3.0
|
34
|
+
|
35
|
+
### Changed
|
36
|
+
|
37
|
+
- Default Lamby::Runner::PATTERNS to allow everything.
|
38
|
+
|
39
|
+
### Added
|
40
|
+
|
41
|
+
- New Lamby::Command for IRB style top level binding evals.
|
42
|
+
|
43
|
+
## v4.2.1
|
44
|
+
|
45
|
+
### Added
|
46
|
+
|
47
|
+
- Local Development Proxy Server with Puma. See #164
|
48
|
+
|
49
|
+
## v4.2.0
|
50
|
+
|
51
|
+
### Added
|
52
|
+
|
53
|
+
- Local Development Proxy Server. See #164
|
54
|
+
|
55
|
+
## v4.1.1
|
56
|
+
|
57
|
+
### Changed
|
58
|
+
|
59
|
+
- New lamby.cloud site and GitHub community organization.
|
60
|
+
|
61
|
+
## v4.1.0
|
62
|
+
|
63
|
+
### Added
|
64
|
+
|
65
|
+
- Future-ready LambdaCable.cmd handler detection.
|
66
|
+
|
67
|
+
## v4.0.2
|
68
|
+
|
69
|
+
### Fixed
|
70
|
+
|
71
|
+
- Runner's Open3 uses crypteia friendly env.
|
72
|
+
|
73
|
+
## v4.0.1
|
74
|
+
|
75
|
+
### Added
|
76
|
+
|
77
|
+
- New `Lamby.config.handled_proc` called with ensure via `Lamby.cmd`
|
78
|
+
|
79
|
+
## v4.0.0
|
80
|
+
|
81
|
+
### Added
|
82
|
+
|
83
|
+
- New `Lamby.config.rack_app` with default Rack builder.
|
84
|
+
- The `Lamby.cmd` to simplify `CMD` with the new config.app from above.
|
85
|
+
|
86
|
+
#### Removed
|
87
|
+
|
88
|
+
- All lamby installer templates.
|
89
|
+
- Remove SAM env checks used during debug mode.
|
90
|
+
- Removed showing environment variables in debug mode.
|
91
|
+
- Need to `require: false` when adding the Lamby gem to your `Gemfile`.
|
92
|
+
- Dotenv integration. Use [Crypteia](https://github.com/customink/crypteia) now.
|
93
|
+
|
94
|
+
#### Changed
|
95
|
+
|
96
|
+
- Tested Rack 3.x.
|
97
|
+
|
98
|
+
## v3.1.3
|
99
|
+
|
100
|
+
#### Fixed
|
101
|
+
|
102
|
+
- The ::Rack::Utils namespace. Fixes #123.
|
103
|
+
|
104
|
+
## v3.1.2
|
105
|
+
|
106
|
+
#### Fixed
|
107
|
+
|
108
|
+
- Lambdakiq Handler Integration. Fixes #120.
|
109
|
+
|
110
|
+
## v3.1.1
|
111
|
+
|
112
|
+
#### Fixed
|
113
|
+
|
114
|
+
- X-Request-Start header value for New Relic with API Gateway.
|
115
|
+
|
116
|
+
## v3.1.0
|
117
|
+
|
118
|
+
#### Added
|
119
|
+
|
120
|
+
- Add X-Request-Start header for New Relic with API Gateway.
|
121
|
+
|
122
|
+
## v3.0.3
|
123
|
+
|
124
|
+
#### Fixed
|
125
|
+
|
126
|
+
- Ruby 2.7 Warnings | Logger. Thanks @jessedoyle
|
127
|
+
|
128
|
+
## v3.0.2
|
129
|
+
|
130
|
+
#### Added
|
131
|
+
|
132
|
+
- Runner now returns STDOUT/STDERR as body.
|
133
|
+
|
134
|
+
## v3.0.1
|
135
|
+
|
136
|
+
#### Fixed
|
137
|
+
|
138
|
+
- Fix Lambdakiq integration. Thanks #97.
|
139
|
+
|
140
|
+
## v3.0.0
|
141
|
+
|
142
|
+
#### Added
|
143
|
+
|
144
|
+
- Automatically handle `Lambdakiq.jobs?(event)`.
|
145
|
+
- New event for tasks like DB migrations. #80 #93
|
146
|
+
|
147
|
+
#### Changed
|
148
|
+
|
149
|
+
- Updated template files to latest lambda container standards.
|
150
|
+
|
151
|
+
## v2.8.0
|
152
|
+
|
153
|
+
#### Fixed
|
154
|
+
|
155
|
+
- Perform rack body closing hooks on request #85
|
156
|
+
|
157
|
+
## v2.7.1
|
158
|
+
|
159
|
+
#### Removed
|
160
|
+
|
161
|
+
- Bootsnap setup convenience require.
|
162
|
+
|
163
|
+
## v2.7.0
|
164
|
+
|
165
|
+
#### Added
|
166
|
+
|
167
|
+
- Support EventBridge events in handler with default proc to log.
|
168
|
+
|
169
|
+
## v2.6.3
|
170
|
+
|
171
|
+
#### Added
|
172
|
+
|
173
|
+
- Bootsnap setup convenience require.
|
174
|
+
|
175
|
+
## v2.6.2
|
176
|
+
|
177
|
+
- Fixed Rack::Deflate usage with an ALB.
|
178
|
+
|
179
|
+
## v2.6.1
|
180
|
+
|
181
|
+
#### Fixed
|
182
|
+
|
183
|
+
- Support redirects with empty response body.
|
184
|
+
|
185
|
+
#### Added
|
186
|
+
|
187
|
+
- Tests for enabling Rack::Deflate middleware by passing RACK_DEFLATE_ENABLED env variable.
|
188
|
+
|
189
|
+
## v2.6.0
|
190
|
+
|
191
|
+
#### Fixed
|
192
|
+
|
193
|
+
- Support multiple Set-Cookie headers for all rest types.
|
194
|
+
|
195
|
+
## v2.5.3
|
196
|
+
|
197
|
+
#### Fixed
|
198
|
+
|
199
|
+
- Base64 encode response body if the rack response is gzip or brotli compressed.
|
200
|
+
|
201
|
+
## v2.5.2
|
202
|
+
|
203
|
+
- SSM file always overwrites. Fixes #65.
|
204
|
+
|
205
|
+
## v2.5.1
|
206
|
+
|
207
|
+
#### Fixed
|
208
|
+
|
209
|
+
- Quoting in describe-subnets #62 Thanks @atwoodjw
|
210
|
+
|
211
|
+
## v2.5.0
|
212
|
+
|
213
|
+
#### Changed
|
214
|
+
|
215
|
+
- Install files to favor containers.
|
216
|
+
|
217
|
+
## v2.2.2
|
218
|
+
|
219
|
+
#### Changed
|
220
|
+
|
221
|
+
- More ActiveSupport removal. Better ENV.to_h.
|
222
|
+
|
223
|
+
## v2.2.1
|
224
|
+
|
225
|
+
#### Changed
|
226
|
+
|
227
|
+
- More ActiveSupport removal from SsmParameterStore.
|
228
|
+
|
229
|
+
## v2.2.0
|
230
|
+
|
231
|
+
#### Changed
|
232
|
+
|
233
|
+
- Remove dependency on `activesupport` for rack-only applications.
|
234
|
+
- Remove ActiveSupport artifacts:
|
235
|
+
- Replace `strip_heredoc` with `<<~HEREDOC`.
|
236
|
+
- Remove instances of `Object#try`, replace with `&.`.
|
237
|
+
- Use `Rack::Utils.build_nested_query` in place of `Object#to_query`.
|
238
|
+
- Replace `Object#present?` with `to_s.empty?`.
|
239
|
+
- Replace `Array.wrap` with `Array[obj].compact.flatten`.
|
240
|
+
- Add a check against the `RAILS_ENV` AND `RACK_ENV` environment
|
241
|
+
variables prior to enabling debug mode.
|
242
|
+
|
243
|
+
## v2.1.0
|
244
|
+
|
245
|
+
#### Changed
|
246
|
+
|
247
|
+
- Only load the railtie if `Rails` is defined.
|
248
|
+
|
249
|
+
## v2.0.1
|
250
|
+
|
251
|
+
#### Changed
|
252
|
+
|
253
|
+
- Remove Rails runtime dep. Only rack is needed.
|
254
|
+
|
255
|
+
## v2.0.0
|
256
|
+
|
257
|
+
Support for new API Gateway HTTP APIs!!!
|
258
|
+
|
259
|
+
#### Changed
|
260
|
+
|
261
|
+
- The `Lamby.handler` must have a `:rack` option. One of `:http`, `:rest`, `:alb`.
|
262
|
+
- Renamed template generators to match options above.
|
263
|
+
- The `lamby:install` task now defaults to HTTP API.
|
264
|
+
- Changed the name of `:api` rack option to `:rest`.
|
265
|
+
- Removed `export` from Dotenv files. Better Docker compatability.
|
266
|
+
|
267
|
+
#### Added
|
268
|
+
|
269
|
+
- New rack handler for HTTP API v1 and v2.
|
270
|
+
- Lots of backfill tests for, ALBs & REST APIs.
|
271
|
+
|
272
|
+
## v1.0.3
|
273
|
+
|
274
|
+
#### Changed
|
275
|
+
|
276
|
+
- Change shebangs to `#!/usr/bin/env bash`
|
277
|
+
|
278
|
+
## v1.0.2
|
279
|
+
|
280
|
+
#### Changed
|
281
|
+
|
282
|
+
- Adds an optional 'overwrite' parameter to #to_env.
|
283
|
+
|
284
|
+
## v1.0.1
|
285
|
+
|
286
|
+
#### Changed
|
287
|
+
|
288
|
+
- Links in bin/build templates to point to lamby.custominktech.com site.
|
289
|
+
|
290
|
+
## v1.0.0
|
291
|
+
|
292
|
+
#### Fixed
|
293
|
+
|
294
|
+
- ALB query params & binary responses. Fixes #38.
|
295
|
+
|
296
|
+
## v0.6.0
|
297
|
+
|
298
|
+
#### Added
|
299
|
+
|
300
|
+
- APPLICATION LOAD BALANACER SUPPORT!!! The new default. Use `rack: :api` option to handler for API Gateway support.
|
301
|
+
|
302
|
+
#### Changed
|
303
|
+
|
304
|
+
- Rake task `lamby:install` now defaults to `application_load_balancer`
|
305
|
+
|
306
|
+
## v0.5.1
|
307
|
+
|
308
|
+
#### Fixed
|
309
|
+
|
310
|
+
- The .gitignore file template. Fix .aws-sam dir.
|
311
|
+
|
312
|
+
## v0.5.0
|
313
|
+
|
314
|
+
#### Added
|
315
|
+
|
316
|
+
- Template generators for first install. Ex: `./bin/rake -r lamby lamby:install:api_gateway`.
|
317
|
+
- New `Lamby::SsmParameterStore.get!` helper.
|
318
|
+
|
319
|
+
## v0.4.1
|
320
|
+
|
321
|
+
#### Fixed
|
322
|
+
|
323
|
+
- Fix type in v0.4.0 fix below.
|
324
|
+
|
325
|
+
## v0.4.0
|
326
|
+
|
327
|
+
#### Fixed
|
328
|
+
|
329
|
+
- File uploads in #33 using `CONTENT_TYPE` and `CONTENT_LENGTH`.
|
330
|
+
|
331
|
+
## v0.3.2
|
332
|
+
|
333
|
+
#### Added
|
334
|
+
|
335
|
+
- Pass Request ID for CloudWatch logs. Fixes #30.
|
336
|
+
|
337
|
+
## v0.3.1
|
338
|
+
|
339
|
+
#### Changed
|
340
|
+
|
341
|
+
- Docs and SAM template tweaks.
|
342
|
+
|
343
|
+
## v0.3.0
|
344
|
+
|
345
|
+
#### Added
|
346
|
+
|
347
|
+
- Secure configs rake task.
|
348
|
+
- Project bin setup and tests.
|
349
|
+
|
350
|
+
#### Changed
|
351
|
+
|
352
|
+
- SAM template tweaks.
|
353
|
+
|
354
|
+
## v0.2.0
|
355
|
+
|
356
|
+
#### Changed
|
357
|
+
|
358
|
+
- Simple docs and project re-organization.
|
359
|
+
|
360
|
+
## v0.1.0
|
361
|
+
|
362
|
+
#### Added
|
363
|
+
|
364
|
+
- New gem and placeholder in rubygems.
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
6
|
+
contributors and maintainers pledge to making participation in our project and
|
7
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
8
|
+
size, disability, ethnicity, gender identity and expression, level of experience,
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
10
|
+
orientation.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
15
|
+
include:
|
16
|
+
|
17
|
+
* Using welcoming and inclusive language
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
19
|
+
* Gracefully accepting constructive criticism
|
20
|
+
* Focusing on what is best for the community
|
21
|
+
* Showing empathy towards other community members
|
22
|
+
|
23
|
+
Examples of unacceptable behavior by participants include:
|
24
|
+
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
+
advances
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
+
* Public or private harassment
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
30
|
+
address, without explicit permission
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
+
professional setting
|
33
|
+
|
34
|
+
## Our Responsibilities
|
35
|
+
|
36
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
37
|
+
behavior and are expected to take appropriate and fair corrective action in
|
38
|
+
response to any instances of unacceptable behavior.
|
39
|
+
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
41
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
42
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
44
|
+
threatening, offensive, or harmful.
|
45
|
+
|
46
|
+
## Scope
|
47
|
+
|
48
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
49
|
+
when an individual is representing the project or its community. Examples of
|
50
|
+
representing a project or community include using an official project e-mail
|
51
|
+
address, posting via an official social media account, or acting as an appointed
|
52
|
+
representative at an online or offline event. Representation of a project may be
|
53
|
+
further defined and clarified by project maintainers.
|
54
|
+
|
55
|
+
## Enforcement
|
56
|
+
|
57
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
+
reported by contacting the project team at ken@metaskills.net. All
|
59
|
+
complaints will be reviewed and investigated and will result in a response that
|
60
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
61
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62
|
+
Further details of specific enforcement policies may be posted separately.
|
63
|
+
|
64
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65
|
+
faith may face temporary or permanent repercussions as determined by other
|
66
|
+
members of the project's leadership.
|
67
|
+
|
68
|
+
## Attribution
|
69
|
+
|
70
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
+
available at [http://contributor-covenant.org/version/1/4][version]
|
72
|
+
|
73
|
+
[homepage]: http://contributor-covenant.org
|
74
|
+
[version]: http://contributor-covenant.org/version/1/4/
|