stitches 4.0.0.RC1 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -0
- data/lib/stitches/configuration.rb +0 -5
- data/lib/stitches/version.rb +1 -1
- data/lib/stitches_norailtie.rb +0 -1
- data/spec/configuration_spec.rb +0 -16
- data/spec/integration/add_to_rails_app_spec.rb +0 -29
- metadata +4 -6
- data/lib/stitches/update_configuration_generator.rb +0 -16
- data/lib/stitches/whitelisting_middleware.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ea8633778064ab7646860c9a0682a7290bfbea3d6f3f091c290f50d22f97de2
|
4
|
+
data.tar.gz: 0eb1d04f15fc37ab0b0484ae6a73f953426cc5dd1b9efd056e42300caa4c2d04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f854d4c3feca2e48b6edfde3174564112b2c0c1d6cb6b93bed960985cc779c1119bcf5ddb65d43d85d3c349d9f440b61e14b1cef27aa6f8c1701768ab5ac1dd5
|
7
|
+
data.tar.gz: b19d1b967d4a5e0dc57265475683bbfd8e9f255d15ee0af1a8130832d16e73e54b52b7e34fc025fe170a4322cb30cbddb6f2e631f7c81521953e4e48514bb547
|
data/README.md
CHANGED
@@ -117,6 +117,24 @@ See [the wiki](https://github.com/stitchfix/stitches/wiki/Setup) for how to setu
|
|
117
117
|
- Acceptance tests that can produce API documentation as they test your app.
|
118
118
|
- Stitches provides [testing support](https://github.com/stitchfix/stitches/wiki/Testing)
|
119
119
|
|
120
|
+
## API Key Caching
|
121
|
+
|
122
|
+
Since version 4.0.0, stitches now has the ability to cache API keys in
|
123
|
+
memory for a configurable amount of time. This may be an improvement for
|
124
|
+
some applications.
|
125
|
+
|
126
|
+
You must configure the API Cache for it be used.
|
127
|
+
|
128
|
+
```ruby
|
129
|
+
Stitches.configure do |config|
|
130
|
+
config.max_cache_ttl = 5 # seconds
|
131
|
+
config.max_cache_size = 100 # how many keys to cache
|
132
|
+
end
|
133
|
+
```
|
134
|
+
|
135
|
+
Your cache size should be
|
136
|
+
larger then the number of consumer keys your service has.
|
137
|
+
|
120
138
|
## Developing
|
121
139
|
|
122
140
|
Although `Stitches.configuration` is global, do not depend directly on that in your logic. Instead, allow all classes to receive a configuration object in their constructor. This makes the classes easier to deal with and change, without incurring much of a real cost to development. Global symbols suck, but are convenient. This is how you make the most of it.
|
@@ -27,11 +27,6 @@ class Stitches::Configuration
|
|
27
27
|
@allowlist_regexp = new_allowlist_regexp
|
28
28
|
end
|
29
29
|
|
30
|
-
def whitelist_regexp=(new_allowlist_regexp)
|
31
|
-
self.allowlist_regexp = new_allowlist_regexp
|
32
|
-
warn("⚠️ 'whitelist' is deprecated in stitches configuration, please use 'allowlist' or auto-update with:\n\n bin/rails g stitches:update_configuration\n\n⚠️ 'whitelist' will be removed in 4.0")
|
33
|
-
end
|
34
|
-
|
35
30
|
# The name of your custom http auth scheme. This must be set, and has no default
|
36
31
|
def custom_http_auth_scheme
|
37
32
|
@custom_http_auth_scheme.to_s
|
data/lib/stitches/version.rb
CHANGED
data/lib/stitches_norailtie.rb
CHANGED
@@ -14,7 +14,6 @@ require 'stitches/errors'
|
|
14
14
|
require 'stitches/api_generator'
|
15
15
|
require 'stitches/add_deprecation_generator'
|
16
16
|
require 'stitches/add_enabled_to_api_clients_generator'
|
17
|
-
require 'stitches/update_configuration_generator'
|
18
17
|
require 'stitches/api_version_constraint'
|
19
18
|
require 'stitches/api_key'
|
20
19
|
require 'stitches/deprecation'
|
data/spec/configuration_spec.rb
CHANGED
@@ -146,20 +146,4 @@ describe Stitches::Configuration do
|
|
146
146
|
}.to raise_error(/max_cache_size must be an Integer, not a NilClass/)
|
147
147
|
end
|
148
148
|
end
|
149
|
-
|
150
|
-
context "deprecated options we want to support for backwards compatibility" do
|
151
|
-
|
152
|
-
let(:logger) { double("logger") }
|
153
|
-
before do
|
154
|
-
allow(Rails).to receive(:logger).and_return(logger)
|
155
|
-
allow(logger).to receive(:info)
|
156
|
-
end
|
157
|
-
|
158
|
-
it "'whitelist' still works for allowlist" do
|
159
|
-
Stitches.configure do |config|
|
160
|
-
config.whitelist_regexp = /foo/
|
161
|
-
end
|
162
|
-
expect(Stitches.configuration.allowlist_regexp).to eq(/foo/)
|
163
|
-
end
|
164
|
-
end
|
165
149
|
end
|
@@ -109,35 +109,6 @@ RSpec.describe "Adding Stitches to a New Rails App", :integration do
|
|
109
109
|
expect(include_line).to_not be_nil,lines.inspect
|
110
110
|
end
|
111
111
|
|
112
|
-
it "inserts can update old configuration" do
|
113
|
-
run "bin/rails generate stitches:api"
|
114
|
-
|
115
|
-
initializer = rails_root / "config" / "initializers" / "stitches.rb"
|
116
|
-
|
117
|
-
initializer_contents = File.read(initializer).split(/\n/)
|
118
|
-
found_initializer = false
|
119
|
-
File.open(initializer,"w") do |file|
|
120
|
-
initializer_contents.each do |line|
|
121
|
-
if line =~ /allowlist/
|
122
|
-
line = line.gsub("allowlist","whitelist")
|
123
|
-
found_initializer = true
|
124
|
-
end
|
125
|
-
file.puts line
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
raise "Didn't find 'allowlist' in the initializer?!" if !found_initializer
|
130
|
-
|
131
|
-
run "bin/rails generate stitches:update_configuration"
|
132
|
-
|
133
|
-
lines = File.read(initializer).split(/\n/)
|
134
|
-
include_line = lines.detect { |line|
|
135
|
-
line =~ /whitelist/
|
136
|
-
}
|
137
|
-
|
138
|
-
expect(include_line).to be_nil,lines.inspect
|
139
|
-
end
|
140
|
-
|
141
112
|
class RoutesFileAnalysis
|
142
113
|
attr_reader :routes_file
|
143
114
|
def initialize(routes_file, namespace: nil, module_scope: nil, resource: nil, mounted_engine: nil)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stitches
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stitch Fix Engineering
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2020-07-
|
14
|
+
date: 2020-07-27 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
@@ -162,10 +162,8 @@ files:
|
|
162
162
|
- lib/stitches/spec/have_api_error.rb
|
163
163
|
- lib/stitches/spec/show_deprecation.rb
|
164
164
|
- lib/stitches/spec/test_headers.rb
|
165
|
-
- lib/stitches/update_configuration_generator.rb
|
166
165
|
- lib/stitches/valid_mime_type.rb
|
167
166
|
- lib/stitches/version.rb
|
168
|
-
- lib/stitches/whitelisting_middleware.rb
|
169
167
|
- lib/stitches_norailtie.rb
|
170
168
|
- owners.json
|
171
169
|
- spec/api_client_access_wrapper_spec.rb
|
@@ -197,9 +195,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
197
195
|
version: '0'
|
198
196
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
197
|
requirements:
|
200
|
-
- - "
|
198
|
+
- - ">="
|
201
199
|
- !ruby/object:Gem::Version
|
202
|
-
version:
|
200
|
+
version: '0'
|
203
201
|
requirements: []
|
204
202
|
rubygems_version: 3.1.2
|
205
203
|
signing_key:
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
|
3
|
-
module Stitches
|
4
|
-
class UpdateConfigurationGenerator < Rails::Generators::Base
|
5
|
-
include Rails::Generators::Migration
|
6
|
-
|
7
|
-
source_root(File.expand_path(File.join(File.dirname(__FILE__),"generator_files")))
|
8
|
-
|
9
|
-
desc "Change your configuration to use 'allowlist' so you'll be ready for 4.x"
|
10
|
-
def update_to_allowlist
|
11
|
-
gsub_file "config/initializers/stitches.rb", /whitelist/, "allowlist"
|
12
|
-
puts "🎉 You are now good to go!"
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|