s3arch 0.1.3 → 0.1.5
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/README.md +9 -17
- data/{infrastructure/schema.tf.rb → config/contracts.rb} +1 -1
- data/{infrastructure/routes.tf.rb → config/routes.rb} +1 -1
- data/lib/s3arch/version.rb +1 -1
- data/lib/tasks/s3arch.rake +117 -86
- metadata +4 -32
- checksums.yaml.gz.sig +0 -2
- data/certs/stowzilla.pem +0 -26
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8c46893f02a5588325d730a0dbd3dfd7944a269ae03f398ca1ca9b0ebac13773
|
|
4
|
+
data.tar.gz: f2758f7ceb14bf54762c0f889d881a2f0e1edd4efa53ca143d31b1ba0bc6ea6d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8dc8da0493198ceb3248fe17e3a4f13ed82f0bc2459598fb0798a30334307df5597413b07e4f6007a3ea25a6cdd866bd796571e712a3801d8618f2b0d2f1db89
|
|
7
|
+
data.tar.gz: 5c32d8cea5c684d5471411865de486462d313f222aece96f69cc1863111bfab3d7a001d22714272d734b154e61c6a897cff3a51e9eee9a3658ed42735b48c3ee
|
data/README.md
CHANGED
|
@@ -93,26 +93,18 @@ indexer.rebuild("user-123")
|
|
|
93
93
|
|
|
94
94
|
## Infrastructure
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
S3arch infrastructure is defined using [Belt](https://github.com/stowzilla/belt) and [Conveyor Belt](https://github.com/stowzilla/terraform-provider-conveyor-belt) conventions:
|
|
97
|
+
|
|
98
|
+
- **[`config/routes.rb`](./config/routes.rb)** — API Gateway routes for search and rebuild endpoints
|
|
99
|
+
- **[`config/contracts.rb`](./config/contracts.rb)** — Request/response schema contracts
|
|
100
|
+
|
|
101
|
+
When using S3arch with a Belt app, these files are automatically picked up by `belt deploy`. For standalone use, you'll need to provision:
|
|
97
102
|
|
|
98
103
|
- S3 bucket for index storage (with 90-day lifecycle)
|
|
99
104
|
- DynamoDB version tracking table (PAY_PER_REQUEST)
|
|
100
105
|
- SQS queue + DLQ for the indexer
|
|
101
106
|
- EventBridge Pipe (DynamoDB Stream → SQS)
|
|
102
107
|
|
|
103
|
-
```hcl
|
|
104
|
-
module "s3arch" {
|
|
105
|
-
source = "github.com/stowzilla/s3arch//terraform"
|
|
106
|
-
app_name = "myapp"
|
|
107
|
-
environment = "production"
|
|
108
|
-
source_table_name = aws_dynamodb_table.items.name
|
|
109
|
-
source_table_arn = aws_dynamodb_table.items.arn
|
|
110
|
-
source_table_stream_arn = aws_dynamodb_table.items.stream_arn
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
Outputs include `indexer_env_vars`, `searcher_env_vars`, `indexer_permissions`, and `searcher_permissions` for easy Lambda configuration.
|
|
115
|
-
|
|
116
108
|
## Configuration Options
|
|
117
109
|
|
|
118
110
|
| Option | Default | Description |
|
|
@@ -148,13 +140,13 @@ S3arch requires the `sqlite3` native extension at runtime. A Rake task is includ
|
|
|
148
140
|
rake s3arch:layer:build
|
|
149
141
|
|
|
150
142
|
# Build and publish in one step
|
|
151
|
-
rake s3arch:layer:publish PROFILE=
|
|
143
|
+
rake s3arch:layer:publish PROFILE=your-profile
|
|
152
144
|
|
|
153
145
|
# Customize the build
|
|
154
146
|
rake s3arch:layer:build RUBY_VERSION=3.4 ARCHITECTURE=x86_64
|
|
155
147
|
|
|
156
148
|
# Publish to a specific region/account
|
|
157
|
-
rake s3arch:layer:publish PROFILE=production REGION=us-west-2 LAYER_NAME=
|
|
149
|
+
rake s3arch:layer:publish PROFILE=production REGION=us-west-2 LAYER_NAME=my-sqlite3-ruby
|
|
158
150
|
```
|
|
159
151
|
|
|
160
152
|
| Environment Variable | Default | Description |
|
|
@@ -164,7 +156,7 @@ rake s3arch:layer:publish PROFILE=production REGION=us-west-2 LAYER_NAME=stowzil
|
|
|
164
156
|
| `OUTPUT` | `pkg/sqlite-layer.zip` | Output path for the zip |
|
|
165
157
|
| `PROFILE` | (none) | AWS CLI profile for publishing |
|
|
166
158
|
| `REGION` | `us-east-1` | AWS region to publish to |
|
|
167
|
-
| `LAYER_NAME` | `
|
|
159
|
+
| `LAYER_NAME` | `sqlite3-ruby` | Layer name in AWS |
|
|
168
160
|
| `S3ARCH_VERSION` | `~> current minor` | Version constraint for s3arch in the layer |
|
|
169
161
|
|
|
170
162
|
Requires Docker to be running (uses the official AWS SAM build images).
|
data/lib/s3arch/version.rb
CHANGED
data/lib/tasks/s3arch.rake
CHANGED
|
@@ -2,103 +2,134 @@
|
|
|
2
2
|
|
|
3
3
|
require_relative '../s3arch/version'
|
|
4
4
|
|
|
5
|
+
module S3archLayerBuilder
|
|
6
|
+
module_function
|
|
7
|
+
|
|
8
|
+
def build_layer(ruby_version:, architecture:, output_file:, s3arch_version:)
|
|
9
|
+
require 'tmpdir'
|
|
10
|
+
require 'fileutils'
|
|
11
|
+
|
|
12
|
+
FileUtils.mkdir_p(File.dirname(output_file))
|
|
13
|
+
|
|
14
|
+
puts "🔨 Building Lambda layer (Ruby #{ruby_version} / #{architecture}, s3arch #{s3arch_version})..."
|
|
15
|
+
|
|
16
|
+
tmpdir = Dir.mktmpdir('s3arch-layer')
|
|
17
|
+
begin
|
|
18
|
+
write_gemfile(tmpdir, s3arch_version)
|
|
19
|
+
run_docker_build(tmpdir, ruby_version, architecture)
|
|
20
|
+
strip_layer("#{tmpdir}/layer")
|
|
21
|
+
verify_layer("#{tmpdir}/layer")
|
|
22
|
+
create_zip("#{tmpdir}/layer", output_file)
|
|
23
|
+
ensure
|
|
24
|
+
system('sudo', 'rm', '-rf', tmpdir) || FileUtils.rm_rf(tmpdir)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def write_gemfile(tmpdir, s3arch_version)
|
|
29
|
+
File.write("#{tmpdir}/Gemfile", <<~GEMFILE)
|
|
30
|
+
source 'https://rubygems.org'
|
|
31
|
+
gem 's3arch', '#{s3arch_version}'
|
|
32
|
+
GEMFILE
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def run_docker_build(tmpdir, ruby_version, architecture)
|
|
36
|
+
docker_image = "public.ecr.aws/sam/build-ruby#{ruby_version}:latest-#{architecture}"
|
|
37
|
+
platform = architecture == 'x86_64' ? 'linux/amd64' : 'linux/arm64'
|
|
38
|
+
|
|
39
|
+
build_script = docker_build_script(ruby_version)
|
|
40
|
+
|
|
41
|
+
docker_cmd = [
|
|
42
|
+
'docker', 'run', '--rm',
|
|
43
|
+
'--platform', platform,
|
|
44
|
+
'-v', "#{tmpdir}:/build",
|
|
45
|
+
'-w', '/build',
|
|
46
|
+
docker_image,
|
|
47
|
+
'/bin/bash', '-c', build_script
|
|
48
|
+
]
|
|
49
|
+
|
|
50
|
+
puts "🐳 Building in Docker (#{docker_image})..."
|
|
51
|
+
abort '❌ Docker build failed' unless system(*docker_cmd)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def docker_build_script(ruby_version)
|
|
55
|
+
<<~BASH
|
|
56
|
+
yum install -y sqlite-devel 2>/dev/null || dnf install -y sqlite-devel 2>/dev/null
|
|
57
|
+
bundle config set --local path /build/layer/ruby/gems/#{ruby_version}.0
|
|
58
|
+
bundle config set --local without "development test"
|
|
59
|
+
bundle config set --local deployment false
|
|
60
|
+
bundle install
|
|
61
|
+
NESTED="/build/layer/ruby/gems/#{ruby_version}.0/ruby/#{ruby_version}.0"
|
|
62
|
+
if [ -d "$NESTED" ]; then
|
|
63
|
+
mkdir -p /build/layer-final/ruby/gems/#{ruby_version}.0
|
|
64
|
+
cp -a "$NESTED"/* /build/layer-final/ruby/gems/#{ruby_version}.0/
|
|
65
|
+
rm -rf /build/layer
|
|
66
|
+
mv /build/layer-final /build/layer
|
|
67
|
+
fi
|
|
68
|
+
BASH
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def strip_layer(layer_dir)
|
|
72
|
+
puts '🧹 Stripping layer...'
|
|
73
|
+
|
|
74
|
+
Dir.glob("#{layer_dir}/ruby/gems/*/gems/*/").each do |gem_dir|
|
|
75
|
+
%w[spec test tests doc docs examples benchmarks].each do |fat_dir|
|
|
76
|
+
FileUtils.rm_rf("#{gem_dir}#{fat_dir}")
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
junk_patterns = %w[
|
|
81
|
+
*.md *.rdoc *.txt *.c *.h *.o Makefile *.log
|
|
82
|
+
CHANGELOG* HISTORY* LICENSE* README* .gitignore Rakefile
|
|
83
|
+
]
|
|
84
|
+
junk_patterns.each do |pattern|
|
|
85
|
+
Dir.glob("#{layer_dir}/**/#{pattern}").each { |f| FileUtils.rm_f(f) }
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
Dir.glob("#{layer_dir}/**/*.so").each do |so|
|
|
89
|
+
system('strip', '--strip-debug', so, err: File::NULL)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def verify_layer(layer_dir)
|
|
94
|
+
sqlite_so = Dir.glob("#{layer_dir}/**/sqlite3_native.so") +
|
|
95
|
+
Dir.glob("#{layer_dir}/**/sqlite3.so")
|
|
96
|
+
abort '❌ sqlite3 native extension NOT found in layer' if sqlite_so.empty?
|
|
97
|
+
puts '✅ sqlite3 native extension included'
|
|
98
|
+
|
|
99
|
+
s3arch_lib = Dir.glob("#{layer_dir}/**/gems/s3arch-*/lib/s3arch.rb")
|
|
100
|
+
abort '❌ s3arch gem NOT found in layer' if s3arch_lib.empty?
|
|
101
|
+
puts '✅ s3arch gem included'
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def create_zip(layer_dir, output_file)
|
|
105
|
+
FileUtils.rm_f(output_file)
|
|
106
|
+
abort '❌ Failed to create zip' unless system('zip', '-qr', output_file, 'ruby/', chdir: layer_dir)
|
|
107
|
+
|
|
108
|
+
size = `du -h #{output_file}`.split("\t").first
|
|
109
|
+
puts "✅ Layer built: #{output_file} (#{size})"
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
5
113
|
namespace :s3arch do
|
|
6
114
|
namespace :layer do
|
|
7
115
|
desc 'Build the Lambda layer zip (defaults: RUBY_VERSION=3.4, ARCHITECTURE=x86_64)'
|
|
8
116
|
task :build do
|
|
9
|
-
require 'tmpdir'
|
|
10
|
-
require 'fileutils'
|
|
11
|
-
|
|
12
117
|
ruby_version = ENV.fetch('RUBY_VERSION', '3.4')
|
|
13
118
|
architecture = ENV.fetch('ARCHITECTURE', 'x86_64')
|
|
14
119
|
output_file = File.expand_path(ENV.fetch('OUTPUT', 'pkg/sqlite-layer.zip'))
|
|
15
120
|
s3arch_version = ENV.fetch('S3ARCH_VERSION', "~> #{S3arch::VERSION.sub(/\.\d+$/, '.0')}")
|
|
16
121
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
File.write("#{tmpdir}/Gemfile", <<~GEMFILE)
|
|
24
|
-
source 'https://rubygems.org'
|
|
25
|
-
gem 'sqlite3', '~> 2.0'
|
|
26
|
-
gem 's3arch', '#{s3arch_version}'
|
|
27
|
-
GEMFILE
|
|
28
|
-
|
|
29
|
-
docker_image = "public.ecr.aws/sam/build-ruby#{ruby_version}:latest-#{architecture}"
|
|
30
|
-
platform = architecture == 'x86_64' ? 'linux/amd64' : 'linux/arm64'
|
|
31
|
-
|
|
32
|
-
build_script = <<~BASH
|
|
33
|
-
yum install -y sqlite-devel 2>/dev/null || dnf install -y sqlite-devel 2>/dev/null
|
|
34
|
-
bundle config set --local path /build/layer/ruby/gems/#{ruby_version}.0
|
|
35
|
-
bundle config set --local without "development test"
|
|
36
|
-
bundle config set --local deployment false
|
|
37
|
-
bundle install
|
|
38
|
-
NESTED="/build/layer/ruby/gems/#{ruby_version}.0/ruby/#{ruby_version}.0"
|
|
39
|
-
if [ -d "$NESTED" ]; then
|
|
40
|
-
mkdir -p /build/layer-final/ruby/gems/#{ruby_version}.0
|
|
41
|
-
cp -a "$NESTED"/* /build/layer-final/ruby/gems/#{ruby_version}.0/
|
|
42
|
-
rm -rf /build/layer
|
|
43
|
-
mv /build/layer-final /build/layer
|
|
44
|
-
fi
|
|
45
|
-
BASH
|
|
46
|
-
|
|
47
|
-
docker_cmd = [
|
|
48
|
-
'docker', 'run', '--rm',
|
|
49
|
-
'--platform', platform,
|
|
50
|
-
'-v', "#{tmpdir}:/build",
|
|
51
|
-
'-w', '/build',
|
|
52
|
-
docker_image,
|
|
53
|
-
'/bin/bash', '-c', build_script
|
|
54
|
-
]
|
|
55
|
-
|
|
56
|
-
puts "🐳 Building in Docker (#{docker_image})..."
|
|
57
|
-
abort '❌ Docker build failed' unless system(*docker_cmd)
|
|
58
|
-
|
|
59
|
-
layer_dir = "#{tmpdir}/layer"
|
|
60
|
-
|
|
61
|
-
puts '🧹 Stripping layer...'
|
|
62
|
-
Dir.glob("#{layer_dir}/ruby/gems/*/gems/*/").each do |gem_dir|
|
|
63
|
-
%w[spec test tests doc docs examples benchmarks].each do |fat_dir|
|
|
64
|
-
FileUtils.rm_rf("#{gem_dir}#{fat_dir}")
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
junk_patterns = %w[
|
|
69
|
-
*.md *.rdoc *.txt *.c *.h *.o Makefile *.log
|
|
70
|
-
CHANGELOG* HISTORY* LICENSE* README* .gitignore Rakefile
|
|
71
|
-
]
|
|
72
|
-
junk_patterns.each do |pattern|
|
|
73
|
-
Dir.glob("#{layer_dir}/**/#{pattern}").each { |f| FileUtils.rm_f(f) }
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
Dir.glob("#{layer_dir}/**/*.so").each do |so|
|
|
77
|
-
system('strip', '--strip-debug', so, err: File::NULL)
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
sqlite_so = Dir.glob("#{layer_dir}/**/sqlite3_native.so") +
|
|
81
|
-
Dir.glob("#{layer_dir}/**/sqlite3.so")
|
|
82
|
-
abort '❌ sqlite3 native extension NOT found in layer' if sqlite_so.empty?
|
|
83
|
-
puts '✅ sqlite3 native extension included'
|
|
84
|
-
|
|
85
|
-
s3arch_lib = Dir.glob("#{layer_dir}/**/gems/s3arch-*/lib/s3arch.rb")
|
|
86
|
-
abort '❌ s3arch gem NOT found in layer' if s3arch_lib.empty?
|
|
87
|
-
puts '✅ s3arch gem included'
|
|
88
|
-
|
|
89
|
-
FileUtils.rm_f(output_file)
|
|
90
|
-
abort '❌ Failed to create zip' unless system('zip', '-qr', output_file, 'ruby/', chdir: layer_dir)
|
|
91
|
-
|
|
92
|
-
size = `du -h #{output_file}`.split("\t").first
|
|
93
|
-
puts "✅ Layer built: #{output_file} (#{size})"
|
|
94
|
-
ensure
|
|
95
|
-
system('sudo', 'rm', '-rf', tmpdir) || FileUtils.rm_rf(tmpdir)
|
|
96
|
-
end
|
|
122
|
+
S3archLayerBuilder.build_layer(
|
|
123
|
+
ruby_version: ruby_version,
|
|
124
|
+
architecture: architecture,
|
|
125
|
+
output_file: output_file,
|
|
126
|
+
s3arch_version: s3arch_version
|
|
127
|
+
)
|
|
97
128
|
end
|
|
98
129
|
|
|
99
|
-
desc 'Build and publish the Lambda layer (set AWS_PROFILE, LAYER_NAME=
|
|
130
|
+
desc 'Build and publish the Lambda layer (set AWS_PROFILE, LAYER_NAME=sqlite3-ruby)'
|
|
100
131
|
task publish: :build do
|
|
101
|
-
layer_name = ENV.fetch('LAYER_NAME', '
|
|
132
|
+
layer_name = ENV.fetch('LAYER_NAME', 'sqlite3-ruby')
|
|
102
133
|
ruby_version = ENV.fetch('RUBY_VERSION', '3.4')
|
|
103
134
|
architecture = ENV.fetch('ARCHITECTURE', 'x86_64')
|
|
104
135
|
output_file = File.expand_path(ENV.fetch('OUTPUT', 'pkg/sqlite-layer.zip'))
|
|
@@ -127,7 +158,7 @@ namespace :s3arch do
|
|
|
127
158
|
owner_id = args.owner_id || ENV.fetch('OWNER_ID', nil)
|
|
128
159
|
abort '❌ Usage: rake s3arch:rebuild[OWNER_ID]' unless owner_id
|
|
129
160
|
|
|
130
|
-
S3arch.configure
|
|
161
|
+
S3arch.configure(&:from_env!)
|
|
131
162
|
|
|
132
163
|
puts "🔄 Rebuilding index for #{owner_id}..."
|
|
133
164
|
S3arch::Indexer.new.rebuild(owner_id)
|
metadata
CHANGED
|
@@ -1,39 +1,12 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: s3arch
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adam Dalton
|
|
8
8
|
bindir: bin
|
|
9
|
-
cert_chain:
|
|
10
|
-
- |
|
|
11
|
-
-----BEGIN CERTIFICATE-----
|
|
12
|
-
MIIEdDCCAtygAwIBAgIBATANBgkqhkiG9w0BAQsFADBAMQ4wDAYDVQQDDAVhZ2Vu
|
|
13
|
-
dDEZMBcGCgmSJomT8ixkARkWCXN0b3d6aWxsYTETMBEGCgmSJomT8ixkARkWA2Nv
|
|
14
|
-
bTAeFw0yNjA2MDgxOTExNTlaFw0yNzA2MDgxOTExNTlaMEAxDjAMBgNVBAMMBWFn
|
|
15
|
-
ZW50MRkwFwYKCZImiZPyLGQBGRYJc3Rvd3ppbGxhMRMwEQYKCZImiZPyLGQBGRYD
|
|
16
|
-
Y29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAupBquKI/4WvXOgND
|
|
17
|
-
pXyqH2GllZs1wG4TWWdn/DoMg45UoCwD+AWEuGrIdInBCpPN8vEJNJWPoM/RrU+b
|
|
18
|
-
xRBZT4uUk00bnZRW2SYh5GJSqBoBR+rWc2DGkXyGfdRU2sQvkB0+is6ChgQ61WMM
|
|
19
|
-
33LE9+loBlVsZ6EVtrc18Uh2OW0mJpe0hN2nmBrxZqqOZigxC4DKRMFHvpRkxSb6
|
|
20
|
-
mD4kit1AcwX9NEWJsXxrPaetL/SB/VbXaEZX93XAvp6USaXvCWt4slkDS2mIvqtn
|
|
21
|
-
9DtGC43LFC7SDGbnsG9PVenQgVCi8UWFPUAab0PqZSlmi3Qlbhw8qTGPp5Cbv4vz
|
|
22
|
-
qjC2UGPOQigA/7lbbGRhCohMrjOVHMAQwkcgiIqtolUoYlnvPMIy+m3pdvgDv/PH
|
|
23
|
-
bsZGvXQ7i0458xsmp1vaKthZocVAR+GboHbuIiYPUnO45ccXUQ00x6365tTe7mZi
|
|
24
|
-
NvmUYdAGbQmVvFqyxF7IYA6sF74L2Lstu0knSfss557bAe1HAgMBAAGjeTB3MAkG
|
|
25
|
-
A1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSnxTL/lNBCeLqpeVIX6AUY
|
|
26
|
-
kel4zjAeBgNVHREEFzAVgRNhZ2VudEBzdG93emlsbGEuY29tMB4GA1UdEgQXMBWB
|
|
27
|
-
E2FnZW50QHN0b3d6aWxsYS5jb20wDQYJKoZIhvcNAQELBQADggGBACm9Fjit/UCv
|
|
28
|
-
FxlKqeiCTIG94cIx+QrWAOJSx9knKydwUec1u04D/DbfZjTn3C2Bj227QgxeUn+6
|
|
29
|
-
if3e2v7zAk1896hLmGYzML0+nxQPb0vmtdLR7HETUlSKTVabcv1fbwLyjsuGrBvk
|
|
30
|
-
y51vOEzUEZ508a9yepLYqrQu1kOju4d57c9oA5l3H0mMKWz7av9tFj0B+STvuaWk
|
|
31
|
-
HRYDWc5HgOEVTyV+w0uFt2Kw4OCb8C42uSvC5RfYYtw78MSP+5Ru+LXJ7XOtmuN0
|
|
32
|
-
E6GVmofQ17ig9O3rgfFbMendSInrRmvPIGswvM1yivq9NOllFbdck2OJKPx6FCJF
|
|
33
|
-
7SJIkXQfc9P4B5iASIV1d1FsE0YX+g3jHXPJK/4mGL5bAyBKzpMfQB/mg6vQBzkh
|
|
34
|
-
aOKPwcreFj7TznBl89R5tNS9wZQfPVR98zgPyocddWhK18eQNMSBUnv4eeJ8PPbk
|
|
35
|
-
DovL+G8ajHDZ9fjH/+GVYHEMuiVdLarXrKJpHC1VfGTTUAp4NSEpUQ==
|
|
36
|
-
-----END CERTIFICATE-----
|
|
9
|
+
cert_chain: []
|
|
37
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
38
11
|
dependencies:
|
|
39
12
|
- !ruby/object:Gem::Dependency
|
|
@@ -117,9 +90,8 @@ files:
|
|
|
117
90
|
- CHANGELOG.md
|
|
118
91
|
- LICENSE.txt
|
|
119
92
|
- README.md
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
- infrastructure/schema.tf.rb
|
|
93
|
+
- config/contracts.rb
|
|
94
|
+
- config/routes.rb
|
|
123
95
|
- lambda/controllers/s3arch_controller.rb
|
|
124
96
|
- lambda/models/search_version.rb
|
|
125
97
|
- lib/s3arch.rb
|
checksums.yaml.gz.sig
DELETED
data/certs/stowzilla.pem
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
|
2
|
-
MIIEdDCCAtygAwIBAgIBATANBgkqhkiG9w0BAQsFADBAMQ4wDAYDVQQDDAVhZ2Vu
|
|
3
|
-
dDEZMBcGCgmSJomT8ixkARkWCXN0b3d6aWxsYTETMBEGCgmSJomT8ixkARkWA2Nv
|
|
4
|
-
bTAeFw0yNjA2MDgxOTExNTlaFw0yNzA2MDgxOTExNTlaMEAxDjAMBgNVBAMMBWFn
|
|
5
|
-
ZW50MRkwFwYKCZImiZPyLGQBGRYJc3Rvd3ppbGxhMRMwEQYKCZImiZPyLGQBGRYD
|
|
6
|
-
Y29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAupBquKI/4WvXOgND
|
|
7
|
-
pXyqH2GllZs1wG4TWWdn/DoMg45UoCwD+AWEuGrIdInBCpPN8vEJNJWPoM/RrU+b
|
|
8
|
-
xRBZT4uUk00bnZRW2SYh5GJSqBoBR+rWc2DGkXyGfdRU2sQvkB0+is6ChgQ61WMM
|
|
9
|
-
33LE9+loBlVsZ6EVtrc18Uh2OW0mJpe0hN2nmBrxZqqOZigxC4DKRMFHvpRkxSb6
|
|
10
|
-
mD4kit1AcwX9NEWJsXxrPaetL/SB/VbXaEZX93XAvp6USaXvCWt4slkDS2mIvqtn
|
|
11
|
-
9DtGC43LFC7SDGbnsG9PVenQgVCi8UWFPUAab0PqZSlmi3Qlbhw8qTGPp5Cbv4vz
|
|
12
|
-
qjC2UGPOQigA/7lbbGRhCohMrjOVHMAQwkcgiIqtolUoYlnvPMIy+m3pdvgDv/PH
|
|
13
|
-
bsZGvXQ7i0458xsmp1vaKthZocVAR+GboHbuIiYPUnO45ccXUQ00x6365tTe7mZi
|
|
14
|
-
NvmUYdAGbQmVvFqyxF7IYA6sF74L2Lstu0knSfss557bAe1HAgMBAAGjeTB3MAkG
|
|
15
|
-
A1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSnxTL/lNBCeLqpeVIX6AUY
|
|
16
|
-
kel4zjAeBgNVHREEFzAVgRNhZ2VudEBzdG93emlsbGEuY29tMB4GA1UdEgQXMBWB
|
|
17
|
-
E2FnZW50QHN0b3d6aWxsYS5jb20wDQYJKoZIhvcNAQELBQADggGBACm9Fjit/UCv
|
|
18
|
-
FxlKqeiCTIG94cIx+QrWAOJSx9knKydwUec1u04D/DbfZjTn3C2Bj227QgxeUn+6
|
|
19
|
-
if3e2v7zAk1896hLmGYzML0+nxQPb0vmtdLR7HETUlSKTVabcv1fbwLyjsuGrBvk
|
|
20
|
-
y51vOEzUEZ508a9yepLYqrQu1kOju4d57c9oA5l3H0mMKWz7av9tFj0B+STvuaWk
|
|
21
|
-
HRYDWc5HgOEVTyV+w0uFt2Kw4OCb8C42uSvC5RfYYtw78MSP+5Ru+LXJ7XOtmuN0
|
|
22
|
-
E6GVmofQ17ig9O3rgfFbMendSInrRmvPIGswvM1yivq9NOllFbdck2OJKPx6FCJF
|
|
23
|
-
7SJIkXQfc9P4B5iASIV1d1FsE0YX+g3jHXPJK/4mGL5bAyBKzpMfQB/mg6vQBzkh
|
|
24
|
-
aOKPwcreFj7TznBl89R5tNS9wZQfPVR98zgPyocddWhK18eQNMSBUnv4eeJ8PPbk
|
|
25
|
-
DovL+G8ajHDZ9fjH/+GVYHEMuiVdLarXrKJpHC1VfGTTUAp4NSEpUQ==
|
|
26
|
-
-----END CERTIFICATE-----
|
data.tar.gz.sig
DELETED
|
Binary file
|
metadata.gz.sig
DELETED
|
Binary file
|