startback 1.2.4 → 2.1.0
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 +954 -0
- data/README.md +45 -2
- data/UPGRADING.md +460 -0
- data/lib/startback/caching/entity_cache.rb +2 -2
- data/lib/startback/event/bus/bunny/async.rb +131 -9
- data/lib/startback/security/rate_limiter.rb +1 -1
- data/lib/startback/version.rb +3 -3
- data/lib/startback/web/auto_caching.rb +10 -4
- data/lib/startback/web/cors_headers.rb +8 -2
- data/lib/startback/web/health_check.rb +1 -1
- data/spec/spec_helper.rb +7 -0
- data/spec/support/bunny_broker.rb +145 -0
- data/spec/unit/event/bus/bunny/test_async.rb +296 -0
- data/spec/unit/web/test_auto_caching.rb +19 -0
- data/spec/unit/web/test_cors_headers.rb +21 -0
- metadata +142 -58
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: startback
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 2.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Bernard Lambeau
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-09-
|
|
11
|
+
date: 2026-09-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -51,25 +51,25 @@ dependencies:
|
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
52
|
version: '0.7'
|
|
53
53
|
- !ruby/object:Gem::Dependency
|
|
54
|
-
name:
|
|
54
|
+
name: rack-test
|
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
|
56
56
|
requirements:
|
|
57
57
|
- - ">="
|
|
58
58
|
- !ruby/object:Gem::Version
|
|
59
|
-
version:
|
|
59
|
+
version: '2.0'
|
|
60
60
|
- - "<"
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
|
-
version: '0
|
|
62
|
+
version: '3.0'
|
|
63
63
|
type: :development
|
|
64
64
|
prerelease: false
|
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
|
67
67
|
- - ">="
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
|
-
version:
|
|
69
|
+
version: '2.0'
|
|
70
70
|
- - "<"
|
|
71
71
|
- !ruby/object:Gem::Version
|
|
72
|
-
version: '0
|
|
72
|
+
version: '3.0'
|
|
73
73
|
- !ruby/object:Gem::Dependency
|
|
74
74
|
name: rake
|
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -90,70 +90,67 @@ dependencies:
|
|
|
90
90
|
requirements:
|
|
91
91
|
- - ">="
|
|
92
92
|
- !ruby/object:Gem::Version
|
|
93
|
-
version: '
|
|
93
|
+
version: '4.0'
|
|
94
94
|
- - "<"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '
|
|
96
|
+
version: '5.0'
|
|
97
97
|
type: :runtime
|
|
98
98
|
prerelease: false
|
|
99
99
|
version_requirements: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - ">="
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
103
|
+
version: '4.0'
|
|
104
104
|
- - "<"
|
|
105
105
|
- !ruby/object:Gem::Version
|
|
106
|
-
version: '
|
|
106
|
+
version: '5.0'
|
|
107
107
|
- !ruby/object:Gem::Dependency
|
|
108
108
|
name: rack-robustness
|
|
109
109
|
requirement: !ruby/object:Gem::Requirement
|
|
110
110
|
requirements:
|
|
111
111
|
- - ">="
|
|
112
112
|
- !ruby/object:Gem::Version
|
|
113
|
-
version: '
|
|
113
|
+
version: '2.0'
|
|
114
114
|
- - "<"
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: '
|
|
116
|
+
version: '3.0'
|
|
117
117
|
type: :runtime
|
|
118
118
|
prerelease: false
|
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
|
121
121
|
- - ">="
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: '
|
|
123
|
+
version: '2.0'
|
|
124
124
|
- - "<"
|
|
125
125
|
- !ruby/object:Gem::Version
|
|
126
|
-
version: '
|
|
126
|
+
version: '3.0'
|
|
127
127
|
- !ruby/object:Gem::Dependency
|
|
128
|
-
name:
|
|
128
|
+
name: path
|
|
129
129
|
requirement: !ruby/object:Gem::Requirement
|
|
130
130
|
requirements:
|
|
131
131
|
- - ">="
|
|
132
132
|
- !ruby/object:Gem::Version
|
|
133
|
-
version: '
|
|
133
|
+
version: '2.1'
|
|
134
134
|
- - "<"
|
|
135
135
|
- !ruby/object:Gem::Version
|
|
136
|
-
version: '0
|
|
136
|
+
version: '3.0'
|
|
137
137
|
type: :runtime
|
|
138
138
|
prerelease: false
|
|
139
139
|
version_requirements: !ruby/object:Gem::Requirement
|
|
140
140
|
requirements:
|
|
141
141
|
- - ">="
|
|
142
142
|
- !ruby/object:Gem::Version
|
|
143
|
-
version: '
|
|
143
|
+
version: '2.1'
|
|
144
144
|
- - "<"
|
|
145
145
|
- !ruby/object:Gem::Version
|
|
146
|
-
version: '0
|
|
146
|
+
version: '3.0'
|
|
147
147
|
- !ruby/object:Gem::Dependency
|
|
148
|
-
name:
|
|
148
|
+
name: prometheus-client
|
|
149
149
|
requirement: !ruby/object:Gem::Requirement
|
|
150
150
|
requirements:
|
|
151
151
|
- - ">="
|
|
152
152
|
- !ruby/object:Gem::Version
|
|
153
153
|
version: '2.1'
|
|
154
|
-
- - "<"
|
|
155
|
-
- !ruby/object:Gem::Version
|
|
156
|
-
version: '3.0'
|
|
157
154
|
type: :runtime
|
|
158
155
|
prerelease: false
|
|
159
156
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -161,29 +158,26 @@ dependencies:
|
|
|
161
158
|
- - ">="
|
|
162
159
|
- !ruby/object:Gem::Version
|
|
163
160
|
version: '2.1'
|
|
164
|
-
- - "<"
|
|
165
|
-
- !ruby/object:Gem::Version
|
|
166
|
-
version: '3.0'
|
|
167
161
|
- !ruby/object:Gem::Dependency
|
|
168
|
-
name:
|
|
162
|
+
name: bmg
|
|
169
163
|
requirement: !ruby/object:Gem::Requirement
|
|
170
164
|
requirements:
|
|
171
165
|
- - ">="
|
|
172
166
|
- !ruby/object:Gem::Version
|
|
173
|
-
version:
|
|
167
|
+
version: 0.21.0
|
|
174
168
|
- - "<"
|
|
175
169
|
- !ruby/object:Gem::Version
|
|
176
|
-
version:
|
|
170
|
+
version: 0.25.0
|
|
177
171
|
type: :runtime
|
|
178
172
|
prerelease: false
|
|
179
173
|
version_requirements: !ruby/object:Gem::Requirement
|
|
180
174
|
requirements:
|
|
181
175
|
- - ">="
|
|
182
176
|
- !ruby/object:Gem::Version
|
|
183
|
-
version:
|
|
177
|
+
version: 0.21.0
|
|
184
178
|
- - "<"
|
|
185
179
|
- !ruby/object:Gem::Version
|
|
186
|
-
version:
|
|
180
|
+
version: 0.25.0
|
|
187
181
|
- !ruby/object:Gem::Dependency
|
|
188
182
|
name: bunny
|
|
189
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -193,7 +187,7 @@ dependencies:
|
|
|
193
187
|
version: '2.14'
|
|
194
188
|
- - "<"
|
|
195
189
|
- !ruby/object:Gem::Version
|
|
196
|
-
version: '
|
|
190
|
+
version: '4.0'
|
|
197
191
|
type: :runtime
|
|
198
192
|
prerelease: false
|
|
199
193
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -203,14 +197,14 @@ dependencies:
|
|
|
203
197
|
version: '2.14'
|
|
204
198
|
- - "<"
|
|
205
199
|
- !ruby/object:Gem::Version
|
|
206
|
-
version: '
|
|
200
|
+
version: '4.0'
|
|
207
201
|
- !ruby/object:Gem::Dependency
|
|
208
|
-
name:
|
|
202
|
+
name: finitio
|
|
209
203
|
requirement: !ruby/object:Gem::Requirement
|
|
210
204
|
requirements:
|
|
211
205
|
- - ">="
|
|
212
206
|
- !ruby/object:Gem::Version
|
|
213
|
-
version:
|
|
207
|
+
version: '0.12'
|
|
214
208
|
- - "<"
|
|
215
209
|
- !ruby/object:Gem::Version
|
|
216
210
|
version: '2.0'
|
|
@@ -220,17 +214,17 @@ dependencies:
|
|
|
220
214
|
requirements:
|
|
221
215
|
- - ">="
|
|
222
216
|
- !ruby/object:Gem::Version
|
|
223
|
-
version:
|
|
217
|
+
version: '0.12'
|
|
224
218
|
- - "<"
|
|
225
219
|
- !ruby/object:Gem::Version
|
|
226
220
|
version: '2.0'
|
|
227
221
|
- !ruby/object:Gem::Dependency
|
|
228
|
-
name:
|
|
222
|
+
name: http
|
|
229
223
|
requirement: !ruby/object:Gem::Requirement
|
|
230
224
|
requirements:
|
|
231
225
|
- - ">="
|
|
232
226
|
- !ruby/object:Gem::Version
|
|
233
|
-
version:
|
|
227
|
+
version: '5.0'
|
|
234
228
|
- - "<"
|
|
235
229
|
- !ruby/object:Gem::Version
|
|
236
230
|
version: '7.0'
|
|
@@ -240,10 +234,30 @@ dependencies:
|
|
|
240
234
|
requirements:
|
|
241
235
|
- - ">="
|
|
242
236
|
- !ruby/object:Gem::Version
|
|
243
|
-
version:
|
|
237
|
+
version: '5.0'
|
|
244
238
|
- - "<"
|
|
245
239
|
- !ruby/object:Gem::Version
|
|
246
240
|
version: '7.0'
|
|
241
|
+
- !ruby/object:Gem::Dependency
|
|
242
|
+
name: i18n
|
|
243
|
+
requirement: !ruby/object:Gem::Requirement
|
|
244
|
+
requirements:
|
|
245
|
+
- - ">="
|
|
246
|
+
- !ruby/object:Gem::Version
|
|
247
|
+
version: '1.0'
|
|
248
|
+
- - "<"
|
|
249
|
+
- !ruby/object:Gem::Version
|
|
250
|
+
version: '2.0'
|
|
251
|
+
type: :runtime
|
|
252
|
+
prerelease: false
|
|
253
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
254
|
+
requirements:
|
|
255
|
+
- - ">="
|
|
256
|
+
- !ruby/object:Gem::Version
|
|
257
|
+
version: '1.0'
|
|
258
|
+
- - "<"
|
|
259
|
+
- !ruby/object:Gem::Version
|
|
260
|
+
version: '2.0'
|
|
247
261
|
- !ruby/object:Gem::Dependency
|
|
248
262
|
name: jwt
|
|
249
263
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -253,7 +267,7 @@ dependencies:
|
|
|
253
267
|
version: '2.1'
|
|
254
268
|
- - "<"
|
|
255
269
|
- !ruby/object:Gem::Version
|
|
256
|
-
version: '
|
|
270
|
+
version: '4.0'
|
|
257
271
|
type: :runtime
|
|
258
272
|
prerelease: false
|
|
259
273
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -263,27 +277,67 @@ dependencies:
|
|
|
263
277
|
version: '2.1'
|
|
264
278
|
- - "<"
|
|
265
279
|
- !ruby/object:Gem::Version
|
|
266
|
-
version: '
|
|
280
|
+
version: '4.0'
|
|
267
281
|
- !ruby/object:Gem::Dependency
|
|
268
|
-
name:
|
|
282
|
+
name: mustache
|
|
269
283
|
requirement: !ruby/object:Gem::Requirement
|
|
270
284
|
requirements:
|
|
271
285
|
- - ">="
|
|
272
286
|
- !ruby/object:Gem::Version
|
|
273
|
-
version:
|
|
287
|
+
version: '1.0'
|
|
274
288
|
- - "<"
|
|
275
289
|
- !ruby/object:Gem::Version
|
|
276
|
-
version:
|
|
290
|
+
version: '2.0'
|
|
277
291
|
type: :runtime
|
|
278
292
|
prerelease: false
|
|
279
293
|
version_requirements: !ruby/object:Gem::Requirement
|
|
280
294
|
requirements:
|
|
281
295
|
- - ">="
|
|
282
296
|
- !ruby/object:Gem::Version
|
|
283
|
-
version:
|
|
297
|
+
version: '1.0'
|
|
284
298
|
- - "<"
|
|
285
299
|
- !ruby/object:Gem::Version
|
|
286
|
-
version:
|
|
300
|
+
version: '2.0'
|
|
301
|
+
- !ruby/object:Gem::Dependency
|
|
302
|
+
name: nokogiri
|
|
303
|
+
requirement: !ruby/object:Gem::Requirement
|
|
304
|
+
requirements:
|
|
305
|
+
- - ">="
|
|
306
|
+
- !ruby/object:Gem::Version
|
|
307
|
+
version: 1.11.4
|
|
308
|
+
- - "<"
|
|
309
|
+
- !ruby/object:Gem::Version
|
|
310
|
+
version: '2.0'
|
|
311
|
+
type: :runtime
|
|
312
|
+
prerelease: false
|
|
313
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
314
|
+
requirements:
|
|
315
|
+
- - ">="
|
|
316
|
+
- !ruby/object:Gem::Version
|
|
317
|
+
version: 1.11.4
|
|
318
|
+
- - "<"
|
|
319
|
+
- !ruby/object:Gem::Version
|
|
320
|
+
version: '2.0'
|
|
321
|
+
- !ruby/object:Gem::Dependency
|
|
322
|
+
name: puma
|
|
323
|
+
requirement: !ruby/object:Gem::Requirement
|
|
324
|
+
requirements:
|
|
325
|
+
- - ">="
|
|
326
|
+
- !ruby/object:Gem::Version
|
|
327
|
+
version: 6.0.2
|
|
328
|
+
- - "<"
|
|
329
|
+
- !ruby/object:Gem::Version
|
|
330
|
+
version: '9.0'
|
|
331
|
+
type: :runtime
|
|
332
|
+
prerelease: false
|
|
333
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
334
|
+
requirements:
|
|
335
|
+
- - ">="
|
|
336
|
+
- !ruby/object:Gem::Version
|
|
337
|
+
version: 6.0.2
|
|
338
|
+
- - "<"
|
|
339
|
+
- !ruby/object:Gem::Version
|
|
340
|
+
version: '9.0'
|
|
287
341
|
- !ruby/object:Gem::Dependency
|
|
288
342
|
name: tzinfo
|
|
289
343
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -319,32 +373,52 @@ dependencies:
|
|
|
319
373
|
- !ruby/object:Gem::Version
|
|
320
374
|
version: '0'
|
|
321
375
|
- !ruby/object:Gem::Dependency
|
|
322
|
-
name:
|
|
376
|
+
name: benchmark
|
|
323
377
|
requirement: !ruby/object:Gem::Requirement
|
|
324
378
|
requirements:
|
|
325
379
|
- - ">="
|
|
326
380
|
- !ruby/object:Gem::Version
|
|
327
|
-
version: '
|
|
381
|
+
version: '0.3'
|
|
328
382
|
- - "<"
|
|
329
383
|
- !ruby/object:Gem::Version
|
|
330
|
-
version: '
|
|
384
|
+
version: '1.0'
|
|
331
385
|
type: :runtime
|
|
332
386
|
prerelease: false
|
|
333
387
|
version_requirements: !ruby/object:Gem::Requirement
|
|
334
388
|
requirements:
|
|
335
389
|
- - ">="
|
|
390
|
+
- !ruby/object:Gem::Version
|
|
391
|
+
version: '0.3'
|
|
392
|
+
- - "<"
|
|
336
393
|
- !ruby/object:Gem::Version
|
|
337
394
|
version: '1.0'
|
|
395
|
+
- !ruby/object:Gem::Dependency
|
|
396
|
+
name: json
|
|
397
|
+
requirement: !ruby/object:Gem::Requirement
|
|
398
|
+
requirements:
|
|
399
|
+
- - ">="
|
|
400
|
+
- !ruby/object:Gem::Version
|
|
401
|
+
version: '2.6'
|
|
338
402
|
- - "<"
|
|
339
403
|
- !ruby/object:Gem::Version
|
|
340
|
-
version: '
|
|
404
|
+
version: '4.0'
|
|
405
|
+
type: :runtime
|
|
406
|
+
prerelease: false
|
|
407
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
408
|
+
requirements:
|
|
409
|
+
- - ">="
|
|
410
|
+
- !ruby/object:Gem::Version
|
|
411
|
+
version: '2.6'
|
|
412
|
+
- - "<"
|
|
413
|
+
- !ruby/object:Gem::Version
|
|
414
|
+
version: '4.0'
|
|
341
415
|
- !ruby/object:Gem::Dependency
|
|
342
|
-
name:
|
|
416
|
+
name: logger
|
|
343
417
|
requirement: !ruby/object:Gem::Requirement
|
|
344
418
|
requirements:
|
|
345
419
|
- - ">="
|
|
346
420
|
- !ruby/object:Gem::Version
|
|
347
|
-
version: '1.
|
|
421
|
+
version: '1.5'
|
|
348
422
|
- - "<"
|
|
349
423
|
- !ruby/object:Gem::Version
|
|
350
424
|
version: '2.0'
|
|
@@ -354,32 +428,40 @@ dependencies:
|
|
|
354
428
|
requirements:
|
|
355
429
|
- - ">="
|
|
356
430
|
- !ruby/object:Gem::Version
|
|
357
|
-
version: '1.
|
|
431
|
+
version: '1.5'
|
|
358
432
|
- - "<"
|
|
359
433
|
- !ruby/object:Gem::Version
|
|
360
434
|
version: '2.0'
|
|
361
435
|
- !ruby/object:Gem::Dependency
|
|
362
|
-
name:
|
|
436
|
+
name: ostruct
|
|
363
437
|
requirement: !ruby/object:Gem::Requirement
|
|
364
438
|
requirements:
|
|
365
439
|
- - ">="
|
|
366
440
|
- !ruby/object:Gem::Version
|
|
367
|
-
version: '
|
|
441
|
+
version: '0.6'
|
|
442
|
+
- - "<"
|
|
443
|
+
- !ruby/object:Gem::Version
|
|
444
|
+
version: '1.0'
|
|
368
445
|
type: :runtime
|
|
369
446
|
prerelease: false
|
|
370
447
|
version_requirements: !ruby/object:Gem::Requirement
|
|
371
448
|
requirements:
|
|
372
449
|
- - ">="
|
|
373
450
|
- !ruby/object:Gem::Version
|
|
374
|
-
version: '
|
|
451
|
+
version: '0.6'
|
|
452
|
+
- - "<"
|
|
453
|
+
- !ruby/object:Gem::Version
|
|
454
|
+
version: '1.0'
|
|
375
455
|
description: Yet another ruby backend framework, I'm afraid
|
|
376
456
|
email: blambeau@gmail.com
|
|
377
457
|
executables: []
|
|
378
458
|
extensions: []
|
|
379
459
|
extra_rdoc_files: []
|
|
380
460
|
files:
|
|
461
|
+
- CHANGELOG.md
|
|
381
462
|
- README.md
|
|
382
463
|
- Rakefile
|
|
464
|
+
- UPGRADING.md
|
|
383
465
|
- lib/startback.rb
|
|
384
466
|
- lib/startback/audit.rb
|
|
385
467
|
- lib/startback/audit/ext.rb
|
|
@@ -451,6 +533,7 @@ files:
|
|
|
451
533
|
- lib/startback/web/prometheus.rb
|
|
452
534
|
- lib/startback/web/shield.rb
|
|
453
535
|
- spec/spec_helper.rb
|
|
536
|
+
- spec/support/bunny_broker.rb
|
|
454
537
|
- spec/unit/audit/ext/test_context.rb
|
|
455
538
|
- spec/unit/audit/test_middleware.rb
|
|
456
539
|
- spec/unit/audit/test_prometheus.rb
|
|
@@ -464,6 +547,7 @@ files:
|
|
|
464
547
|
- spec/unit/context/test_middleware.rb
|
|
465
548
|
- spec/unit/context/test_with_world.rb
|
|
466
549
|
- spec/unit/context/test_world.rb
|
|
550
|
+
- spec/unit/event/bus/bunny/test_async.rb
|
|
467
551
|
- spec/unit/event/bus/memory/test_async.rb
|
|
468
552
|
- spec/unit/event/bus/memory/test_sync.rb
|
|
469
553
|
- spec/unit/security/test_rate_limiter.rb
|
|
@@ -498,7 +582,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
498
582
|
requirements:
|
|
499
583
|
- - ">="
|
|
500
584
|
- !ruby/object:Gem::Version
|
|
501
|
-
version: '
|
|
585
|
+
version: '3.2'
|
|
502
586
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
503
587
|
requirements:
|
|
504
588
|
- - ">="
|