punk 0.1.4 → 0.2.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.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +9 -0
  3. data/.github/workflows/test.yml +26 -1
  4. data/.rdoc_options +23 -0
  5. data/.rgignore +1 -0
  6. data/.rspec +2 -0
  7. data/Gemfile +5 -6
  8. data/Gemfile.lock +16 -29
  9. data/README.md +1 -1
  10. data/VERSION +1 -1
  11. data/app/migrations/001_lets_punk.rb +3 -0
  12. data/app/routes/hello.rb +4 -0
  13. data/env/.gitignore +3 -0
  14. data/env/spec/test.sh +3 -0
  15. data/lib/punk/actions/.keep +0 -0
  16. data/lib/punk/actions/groups/list.rb +24 -0
  17. data/lib/punk/actions/sessions/clear.rb +21 -0
  18. data/lib/punk/actions/sessions/create.rb +64 -0
  19. data/lib/punk/actions/sessions/list.rb +18 -0
  20. data/lib/punk/actions/sessions/verify.rb +24 -0
  21. data/lib/punk/actions/tenants/list.rb +18 -0
  22. data/lib/punk/actions/users/list_group.rb +18 -0
  23. data/lib/punk/actions/users/list_tenant.rb +18 -0
  24. data/lib/punk/actions/users/show.rb +18 -0
  25. data/lib/punk/commands/list.rb +12 -6
  26. data/lib/punk/config/defaults.json +3 -0
  27. data/lib/punk/config/schema.json +3 -0
  28. data/lib/punk/core/app.rb +4 -6
  29. data/lib/punk/core/commander.rb +7 -4
  30. data/lib/punk/core/exec.rb +2 -0
  31. data/lib/punk/core/load.rb +0 -1
  32. data/lib/punk/framework/command.rb +5 -1
  33. data/lib/punk/framework/plugins/validation.rb +0 -14
  34. data/lib/punk/helpers/loggable.rb +1 -1
  35. data/lib/punk/migrations/001_punk.rb +103 -0
  36. data/lib/punk/models/.keep +0 -0
  37. data/lib/punk/models/group.rb +20 -0
  38. data/lib/punk/models/group_user_metadata.rb +17 -0
  39. data/lib/punk/models/identity.rb +29 -0
  40. data/lib/punk/models/session.rb +89 -0
  41. data/lib/punk/models/tenant.rb +19 -0
  42. data/lib/punk/models/tenant_user_metadata.rb +17 -0
  43. data/lib/punk/models/user.rb +31 -0
  44. data/lib/punk/routes/groups.rb +31 -0
  45. data/lib/punk/routes/plivo.rb +4 -0
  46. data/lib/punk/routes/sessions.rb +108 -0
  47. data/lib/punk/routes/swagger.rb +9 -0
  48. data/lib/punk/routes/tenants.rb +29 -0
  49. data/lib/punk/routes/users.rb +36 -0
  50. data/lib/punk/services/.keep +0 -0
  51. data/lib/punk/services/challenge_claim.rb +46 -0
  52. data/lib/punk/services/create_identities.rb +25 -0
  53. data/lib/punk/services/generate_swagger.rb +25 -0
  54. data/lib/punk/services/prove_claim.rb +29 -0
  55. data/lib/punk/services/secret.rb +9 -0
  56. data/lib/punk/templates/groups/list.jbuilder +7 -0
  57. data/lib/punk/templates/plivo.slim +16 -0
  58. data/lib/punk/templates/sessions/list.jbuilder +6 -0
  59. data/lib/punk/templates/sessions/pending.jbuilder +4 -0
  60. data/lib/punk/templates/tenants/list.jbuilder +7 -0
  61. data/lib/punk/templates/tenants/list.slim +8 -0
  62. data/lib/punk/templates/users/list.jbuilder +7 -0
  63. data/lib/punk/templates/users/list.rcsv +4 -0
  64. data/lib/punk/templates/users/show.jbuilder +5 -0
  65. data/lib/punk/views/groups/list.rb +22 -0
  66. data/lib/punk/views/plivo_store.rb +15 -0
  67. data/lib/punk/views/sessions/list.rb +22 -0
  68. data/lib/punk/views/sessions/pending.rb +28 -0
  69. data/lib/punk/views/tenants/list.rb +22 -0
  70. data/lib/punk/views/users/list.rb +22 -0
  71. data/lib/punk/views/users/show.rb +22 -0
  72. data/lib/punk/workers/.keep +0 -0
  73. data/lib/punk/workers/expire_sessions.rb +9 -0
  74. data/lib/punk/workers/geocode_session_worker.rb +48 -0
  75. data/lib/punk/workers/identify_session_worker.rb +45 -0
  76. data/lib/punk/workers/secret.rb +18 -0
  77. data/lib/punk/workers/send_email_worker.rb +51 -0
  78. data/lib/punk/workers/send_sms_worker.rb +40 -0
  79. data/punk.gemspec +140 -14
  80. data/schema.psql +345 -0
  81. data/spec/actions/groups/punk/list_groups_action_spec.rb +36 -0
  82. data/spec/actions/sessions/punk/clear_session_action_spec.rb +29 -0
  83. data/spec/actions/sessions/punk/create_session_action_spec.rb +33 -0
  84. data/spec/actions/sessions/punk/list_sessions_action_spec.rb +26 -0
  85. data/spec/actions/sessions/punk/verify_session_action_spec.rb +59 -0
  86. data/spec/actions/tenants/punk/list_tenants_action_spec.rb +25 -0
  87. data/spec/actions/users/punk/list_group_users_action_spec.rb +26 -0
  88. data/spec/actions/users/punk/list_tenant_users_action_spec.rb +26 -0
  89. data/spec/factories/group.rb +12 -0
  90. data/spec/factories/group_user_metadata.rb +10 -0
  91. data/spec/factories/identity.rb +19 -0
  92. data/spec/factories/session.rb +12 -0
  93. data/spec/factories/tenant.rb +10 -0
  94. data/spec/factories/tenant_user_metadata.rb +10 -0
  95. data/spec/factories/user.rb +12 -0
  96. data/spec/lib/commands/auth_spec.rb +11 -0
  97. data/spec/lib/commands/generate_spec.rb +7 -0
  98. data/spec/lib/commands/http_spec.rb +23 -0
  99. data/spec/lib/commands/list_spec.rb +7 -0
  100. data/spec/lib/commands/swagger_spec.rb +7 -0
  101. data/spec/lib/engine/punk_env_spec.rb +13 -0
  102. data/spec/lib/engine/punk_exec_spec.rb +9 -0
  103. data/spec/lib/engine/punk_init_spec.rb +9 -0
  104. data/spec/lib/engine/punk_store_spec.rb +10 -0
  105. data/spec/lib/punk.env +7 -0
  106. data/spec/models/punk/group_spec.rb +50 -0
  107. data/spec/models/punk/group_user_metadata_spec.rb +61 -0
  108. data/spec/models/punk/identity_spec.rb +61 -0
  109. data/spec/models/punk/session_spec.rb +156 -0
  110. data/spec/models/punk/tenant_spec.rb +51 -0
  111. data/spec/models/punk/tenant_user_metadata_spec.rb +61 -0
  112. data/spec/models/punk/user_spec.rb +115 -0
  113. data/spec/routes/groups/get_groups_spec.rb +33 -0
  114. data/spec/routes/plivo/get_plivo_spec.rb +11 -0
  115. data/spec/routes/sessions/delete_session_spec.rb +11 -0
  116. data/spec/routes/sessions/get_sessions_spec.rb +30 -0
  117. data/spec/routes/sessions/patch_session_spec.rb +11 -0
  118. data/spec/routes/sessions/post_session_spec.rb +11 -0
  119. data/spec/routes/swagger/get_swagger_spec.rb +12 -0
  120. data/spec/routes/tenants/get_tenants_spec.rb +31 -0
  121. data/spec/routes/users/get_users_spec.rb +60 -0
  122. data/spec/services/punk/challenge_claim_service_spec.rb +7 -0
  123. data/spec/services/punk/create_identities_service_spec.rb +14 -0
  124. data/spec/services/punk/generate_swagger_service_spec.rb +7 -0
  125. data/spec/services/punk/prove_claim_service_spec.rb +7 -0
  126. data/spec/services/punk/secret_service_spec.rb +7 -0
  127. data/spec/spec_helper.rb +122 -0
  128. data/spec/vcr_cassettes/PUNK_GeocodeSessionWorker/updates_the_session_data.yml +57 -0
  129. data/spec/vcr_cassettes/PUNK_IdentifySessionWorker/updates_the_session_data.yml +112 -0
  130. data/spec/views/punk/plivo_store_spec.rb +7 -0
  131. data/spec/views/sessions/punk/list_sessions_view_spec.rb +7 -0
  132. data/spec/views/sessions/punk/pending_session_view_spec.rb +7 -0
  133. data/spec/views/tenants/punk/list_tenants_view_spec.rb +7 -0
  134. data/spec/views/users/punk/list_groups_view_spec.rb +7 -0
  135. data/spec/views/users/punk/list_users_view_spec.rb +7 -0
  136. data/spec/workers/punk/expire_sessions_worker_spec.rb +31 -0
  137. data/spec/workers/punk/geocode_session_worker_spec.rb +14 -0
  138. data/spec/workers/punk/identify_session_worker_spec.rb +15 -0
  139. data/spec/workers/punk/secret_worker_spec.rb +20 -0
  140. data/spec/workers/punk/send_email_worker_spec.rb +46 -0
  141. data/spec/workers/punk/send_sms_worker_spec.rb +33 -0
  142. metadata +148 -11
  143. data/lib/punk/views/all.rb +0 -4
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PUNK
4
+ class SendSmsWorker < Worker
5
+ args :to, :body
6
+
7
+ def validate
8
+ validates_type String, :to
9
+ validates_phone :to
10
+ validates_includes PUNK.get.plivo.whitelist, :to if !PUNK.env.test? && !PUNK.get.plivo.mock && PUNK.get.plivo.whitelist.present?
11
+ validates_type String, :body
12
+ validates_length_range 1..1600, :body
13
+ end
14
+
15
+ def process
16
+ if PUNK.env.test? || PUNK.get.plivo.mock
17
+ plivo = PUNK.cache.get(:plivo) || []
18
+ message =
19
+ {
20
+ sent: Time.now.utc.to_s,
21
+ from: PUNK.get.plivo.number,
22
+ to: to,
23
+ body: body
24
+ }
25
+ plivo.prepend(message)
26
+ PUNK.cache.set(:plivo, plivo)
27
+ unless PUNK.env.test?
28
+ require 'launchy'
29
+ Launchy.open("#{PUNK.get.app.url || 'http://localhost:3000'}/plivo.html")
30
+ end
31
+ return
32
+ end
33
+
34
+ require 'plivo'
35
+
36
+ client = Plivo::RestClient.new(PUNK.get.plivo.auth_id, PUNK.get.plivo.auth_token)
37
+ client.messages.create(PUNK.get.plivo.number, [to], body)
38
+ end
39
+ end
40
+ end
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: punk 0.1.4 ruby lib
5
+ # stub: punk 0.2.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "punk".freeze
9
- s.version = "0.1.4"
9
+ s.version = "0.2.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Lloyd Kranzky".freeze]
14
- s.date = "2021-01-09"
14
+ s.date = "2021-01-13"
15
15
  s.description = "".freeze
16
16
  s.email = "lloyd@kranzky.com".freeze
17
17
  s.executables = ["punk".freeze]
@@ -21,8 +21,12 @@ Gem::Specification.new do |s|
21
21
  ]
22
22
  s.files = [
23
23
  ".document",
24
+ ".editorconfig",
24
25
  ".github/workflows/ship.yml",
25
26
  ".github/workflows/test.yml",
27
+ ".rdoc_options",
28
+ ".rgignore",
29
+ ".rspec",
26
30
  ".rubocop.yml",
27
31
  "Gemfile",
28
32
  "Gemfile.lock",
@@ -30,9 +34,23 @@ Gem::Specification.new do |s|
30
34
  "README.md",
31
35
  "Rakefile",
32
36
  "VERSION",
37
+ "app/migrations/001_lets_punk.rb",
38
+ "app/routes/hello.rb",
33
39
  "bin/punk",
40
+ "env/.gitignore",
41
+ "env/spec/test.sh",
34
42
  "env/test.sh",
35
43
  "lib/punk.rb",
44
+ "lib/punk/actions/.keep",
45
+ "lib/punk/actions/groups/list.rb",
46
+ "lib/punk/actions/sessions/clear.rb",
47
+ "lib/punk/actions/sessions/create.rb",
48
+ "lib/punk/actions/sessions/list.rb",
49
+ "lib/punk/actions/sessions/verify.rb",
50
+ "lib/punk/actions/tenants/list.rb",
51
+ "lib/punk/actions/users/list_group.rb",
52
+ "lib/punk/actions/users/list_tenant.rb",
53
+ "lib/punk/actions/users/show.rb",
36
54
  "lib/punk/commands/auth.rb",
37
55
  "lib/punk/commands/generate.rb",
38
56
  "lib/punk/commands/http.rb",
@@ -76,9 +94,30 @@ Gem::Specification.new do |s|
76
94
  "lib/punk/helpers/renderable.rb",
77
95
  "lib/punk/helpers/swagger.rb",
78
96
  "lib/punk/helpers/validatable.rb",
97
+ "lib/punk/migrations/001_punk.rb",
98
+ "lib/punk/models/.keep",
99
+ "lib/punk/models/group.rb",
100
+ "lib/punk/models/group_user_metadata.rb",
101
+ "lib/punk/models/identity.rb",
102
+ "lib/punk/models/session.rb",
103
+ "lib/punk/models/tenant.rb",
104
+ "lib/punk/models/tenant_user_metadata.rb",
105
+ "lib/punk/models/user.rb",
79
106
  "lib/punk/plugins/all.rb",
80
107
  "lib/punk/plugins/cors.rb",
81
108
  "lib/punk/plugins/ssl.rb",
109
+ "lib/punk/routes/groups.rb",
110
+ "lib/punk/routes/plivo.rb",
111
+ "lib/punk/routes/sessions.rb",
112
+ "lib/punk/routes/swagger.rb",
113
+ "lib/punk/routes/tenants.rb",
114
+ "lib/punk/routes/users.rb",
115
+ "lib/punk/services/.keep",
116
+ "lib/punk/services/challenge_claim.rb",
117
+ "lib/punk/services/create_identities.rb",
118
+ "lib/punk/services/generate_swagger.rb",
119
+ "lib/punk/services/prove_claim.rb",
120
+ "lib/punk/services/secret.rb",
82
121
  "lib/punk/startup/cache.rb",
83
122
  "lib/punk/startup/database.rb",
84
123
  "lib/punk/startup/environment.rb",
@@ -88,14 +127,98 @@ Gem::Specification.new do |s|
88
127
  "lib/punk/templates/fail.rcsv",
89
128
  "lib/punk/templates/fail.slim",
90
129
  "lib/punk/templates/fail.xml.slim",
130
+ "lib/punk/templates/groups/list.jbuilder",
91
131
  "lib/punk/templates/info.jbuilder",
92
132
  "lib/punk/templates/info.rcsv",
93
133
  "lib/punk/templates/info.slim",
94
134
  "lib/punk/templates/info.xml.slim",
95
- "lib/punk/views/all.rb",
135
+ "lib/punk/templates/plivo.slim",
136
+ "lib/punk/templates/sessions/list.jbuilder",
137
+ "lib/punk/templates/sessions/pending.jbuilder",
138
+ "lib/punk/templates/tenants/list.jbuilder",
139
+ "lib/punk/templates/tenants/list.slim",
140
+ "lib/punk/templates/users/list.jbuilder",
141
+ "lib/punk/templates/users/list.rcsv",
142
+ "lib/punk/templates/users/show.jbuilder",
96
143
  "lib/punk/views/fail.rb",
144
+ "lib/punk/views/groups/list.rb",
97
145
  "lib/punk/views/info.rb",
98
- "punk.gemspec"
146
+ "lib/punk/views/plivo_store.rb",
147
+ "lib/punk/views/sessions/list.rb",
148
+ "lib/punk/views/sessions/pending.rb",
149
+ "lib/punk/views/tenants/list.rb",
150
+ "lib/punk/views/users/list.rb",
151
+ "lib/punk/views/users/show.rb",
152
+ "lib/punk/workers/.keep",
153
+ "lib/punk/workers/expire_sessions.rb",
154
+ "lib/punk/workers/geocode_session_worker.rb",
155
+ "lib/punk/workers/identify_session_worker.rb",
156
+ "lib/punk/workers/secret.rb",
157
+ "lib/punk/workers/send_email_worker.rb",
158
+ "lib/punk/workers/send_sms_worker.rb",
159
+ "punk.gemspec",
160
+ "schema.psql",
161
+ "spec/actions/groups/punk/list_groups_action_spec.rb",
162
+ "spec/actions/sessions/punk/clear_session_action_spec.rb",
163
+ "spec/actions/sessions/punk/create_session_action_spec.rb",
164
+ "spec/actions/sessions/punk/list_sessions_action_spec.rb",
165
+ "spec/actions/sessions/punk/verify_session_action_spec.rb",
166
+ "spec/actions/tenants/punk/list_tenants_action_spec.rb",
167
+ "spec/actions/users/punk/list_group_users_action_spec.rb",
168
+ "spec/actions/users/punk/list_tenant_users_action_spec.rb",
169
+ "spec/factories/group.rb",
170
+ "spec/factories/group_user_metadata.rb",
171
+ "spec/factories/identity.rb",
172
+ "spec/factories/session.rb",
173
+ "spec/factories/tenant.rb",
174
+ "spec/factories/tenant_user_metadata.rb",
175
+ "spec/factories/user.rb",
176
+ "spec/lib/commands/auth_spec.rb",
177
+ "spec/lib/commands/generate_spec.rb",
178
+ "spec/lib/commands/http_spec.rb",
179
+ "spec/lib/commands/list_spec.rb",
180
+ "spec/lib/commands/swagger_spec.rb",
181
+ "spec/lib/engine/punk_env_spec.rb",
182
+ "spec/lib/engine/punk_exec_spec.rb",
183
+ "spec/lib/engine/punk_init_spec.rb",
184
+ "spec/lib/engine/punk_store_spec.rb",
185
+ "spec/lib/punk.env",
186
+ "spec/models/punk/group_spec.rb",
187
+ "spec/models/punk/group_user_metadata_spec.rb",
188
+ "spec/models/punk/identity_spec.rb",
189
+ "spec/models/punk/session_spec.rb",
190
+ "spec/models/punk/tenant_spec.rb",
191
+ "spec/models/punk/tenant_user_metadata_spec.rb",
192
+ "spec/models/punk/user_spec.rb",
193
+ "spec/routes/groups/get_groups_spec.rb",
194
+ "spec/routes/plivo/get_plivo_spec.rb",
195
+ "spec/routes/sessions/delete_session_spec.rb",
196
+ "spec/routes/sessions/get_sessions_spec.rb",
197
+ "spec/routes/sessions/patch_session_spec.rb",
198
+ "spec/routes/sessions/post_session_spec.rb",
199
+ "spec/routes/swagger/get_swagger_spec.rb",
200
+ "spec/routes/tenants/get_tenants_spec.rb",
201
+ "spec/routes/users/get_users_spec.rb",
202
+ "spec/services/punk/challenge_claim_service_spec.rb",
203
+ "spec/services/punk/create_identities_service_spec.rb",
204
+ "spec/services/punk/generate_swagger_service_spec.rb",
205
+ "spec/services/punk/prove_claim_service_spec.rb",
206
+ "spec/services/punk/secret_service_spec.rb",
207
+ "spec/spec_helper.rb",
208
+ "spec/vcr_cassettes/PUNK_GeocodeSessionWorker/updates_the_session_data.yml",
209
+ "spec/vcr_cassettes/PUNK_IdentifySessionWorker/updates_the_session_data.yml",
210
+ "spec/views/punk/plivo_store_spec.rb",
211
+ "spec/views/sessions/punk/list_sessions_view_spec.rb",
212
+ "spec/views/sessions/punk/pending_session_view_spec.rb",
213
+ "spec/views/tenants/punk/list_tenants_view_spec.rb",
214
+ "spec/views/users/punk/list_groups_view_spec.rb",
215
+ "spec/views/users/punk/list_users_view_spec.rb",
216
+ "spec/workers/punk/expire_sessions_worker_spec.rb",
217
+ "spec/workers/punk/geocode_session_worker_spec.rb",
218
+ "spec/workers/punk/identify_session_worker_spec.rb",
219
+ "spec/workers/punk/secret_worker_spec.rb",
220
+ "spec/workers/punk/send_email_worker_spec.rb",
221
+ "spec/workers/punk/send_sms_worker_spec.rb"
99
222
  ]
100
223
  s.homepage = "https://github.com/kranzky/punk".freeze
101
224
  s.licenses = ["Unlicense".freeze]
@@ -127,7 +250,7 @@ Gem::Specification.new do |s|
127
250
  s.add_runtime_dependency(%q<sequel>.freeze, ["~> 5.40"])
128
251
  s.add_runtime_dependency(%q<aasm>.freeze, ["~> 5.1"])
129
252
  s.add_runtime_dependency(%q<http-accept>.freeze, ["~> 2.1"])
130
- s.add_runtime_dependency(%q<maxmind-db>.freeze, ["~> 1.1"])
253
+ s.add_runtime_dependency(%q<ipstack>.freeze, ["~> 0.1"])
131
254
  s.add_runtime_dependency(%q<rbnacl>.freeze, ["~> 7.1"])
132
255
  s.add_runtime_dependency(%q<userstack>.freeze, ["~> 0.1"])
133
256
  s.add_runtime_dependency(%q<sidekiq>.freeze, ["~> 6.1"])
@@ -138,12 +261,13 @@ Gem::Specification.new do |s|
138
261
  s.add_runtime_dependency(%q<roda-route_list>.freeze, ["~> 2.1"])
139
262
  s.add_runtime_dependency(%q<slim>.freeze, ["~> 4.1"])
140
263
  s.add_runtime_dependency(%q<jbuilder>.freeze, ["~> 2.10"])
141
- s.add_runtime_dependency(%q<oj>.freeze, ["~> 3.10"])
264
+ s.add_runtime_dependency(%q<oj>.freeze, ["~> 3.11"])
142
265
  s.add_runtime_dependency(%q<tilt-jbuilder>.freeze, ["~> 0.7"])
143
266
  s.add_runtime_dependency(%q<rdoc>.freeze, ["~> 6.3"])
144
267
  s.add_runtime_dependency(%q<swagger_yard>.freeze, ["~> 1.0"])
145
268
  s.add_runtime_dependency(%q<activesupport>.freeze, ["~> 6.1"])
146
- s.add_runtime_dependency(%q<sentry-raven>.freeze, ["~> 3.1"])
269
+ s.add_runtime_dependency(%q<sentry-ruby>.freeze, ["~> 4.1"])
270
+ s.add_runtime_dependency(%q<sentry-sidekiq>.freeze, ["~> 4.1"])
147
271
  s.add_runtime_dependency(%q<skylight>.freeze, ["~> 4.3"])
148
272
  s.add_runtime_dependency(%q<phony>.freeze, ["~> 2.18"])
149
273
  s.add_development_dependency(%q<bundler>.freeze, ["~> 1.17"])
@@ -174,7 +298,7 @@ Gem::Specification.new do |s|
174
298
  s.add_dependency(%q<sequel>.freeze, ["~> 5.40"])
175
299
  s.add_dependency(%q<aasm>.freeze, ["~> 5.1"])
176
300
  s.add_dependency(%q<http-accept>.freeze, ["~> 2.1"])
177
- s.add_dependency(%q<maxmind-db>.freeze, ["~> 1.1"])
301
+ s.add_dependency(%q<ipstack>.freeze, ["~> 0.1"])
178
302
  s.add_dependency(%q<rbnacl>.freeze, ["~> 7.1"])
179
303
  s.add_dependency(%q<userstack>.freeze, ["~> 0.1"])
180
304
  s.add_dependency(%q<sidekiq>.freeze, ["~> 6.1"])
@@ -185,12 +309,13 @@ Gem::Specification.new do |s|
185
309
  s.add_dependency(%q<roda-route_list>.freeze, ["~> 2.1"])
186
310
  s.add_dependency(%q<slim>.freeze, ["~> 4.1"])
187
311
  s.add_dependency(%q<jbuilder>.freeze, ["~> 2.10"])
188
- s.add_dependency(%q<oj>.freeze, ["~> 3.10"])
312
+ s.add_dependency(%q<oj>.freeze, ["~> 3.11"])
189
313
  s.add_dependency(%q<tilt-jbuilder>.freeze, ["~> 0.7"])
190
314
  s.add_dependency(%q<rdoc>.freeze, ["~> 6.3"])
191
315
  s.add_dependency(%q<swagger_yard>.freeze, ["~> 1.0"])
192
316
  s.add_dependency(%q<activesupport>.freeze, ["~> 6.1"])
193
- s.add_dependency(%q<sentry-raven>.freeze, ["~> 3.1"])
317
+ s.add_dependency(%q<sentry-ruby>.freeze, ["~> 4.1"])
318
+ s.add_dependency(%q<sentry-sidekiq>.freeze, ["~> 4.1"])
194
319
  s.add_dependency(%q<skylight>.freeze, ["~> 4.3"])
195
320
  s.add_dependency(%q<phony>.freeze, ["~> 2.18"])
196
321
  s.add_dependency(%q<bundler>.freeze, ["~> 1.17"])
@@ -222,7 +347,7 @@ Gem::Specification.new do |s|
222
347
  s.add_dependency(%q<sequel>.freeze, ["~> 5.40"])
223
348
  s.add_dependency(%q<aasm>.freeze, ["~> 5.1"])
224
349
  s.add_dependency(%q<http-accept>.freeze, ["~> 2.1"])
225
- s.add_dependency(%q<maxmind-db>.freeze, ["~> 1.1"])
350
+ s.add_dependency(%q<ipstack>.freeze, ["~> 0.1"])
226
351
  s.add_dependency(%q<rbnacl>.freeze, ["~> 7.1"])
227
352
  s.add_dependency(%q<userstack>.freeze, ["~> 0.1"])
228
353
  s.add_dependency(%q<sidekiq>.freeze, ["~> 6.1"])
@@ -233,12 +358,13 @@ Gem::Specification.new do |s|
233
358
  s.add_dependency(%q<roda-route_list>.freeze, ["~> 2.1"])
234
359
  s.add_dependency(%q<slim>.freeze, ["~> 4.1"])
235
360
  s.add_dependency(%q<jbuilder>.freeze, ["~> 2.10"])
236
- s.add_dependency(%q<oj>.freeze, ["~> 3.10"])
361
+ s.add_dependency(%q<oj>.freeze, ["~> 3.11"])
237
362
  s.add_dependency(%q<tilt-jbuilder>.freeze, ["~> 0.7"])
238
363
  s.add_dependency(%q<rdoc>.freeze, ["~> 6.3"])
239
364
  s.add_dependency(%q<swagger_yard>.freeze, ["~> 1.0"])
240
365
  s.add_dependency(%q<activesupport>.freeze, ["~> 6.1"])
241
- s.add_dependency(%q<sentry-raven>.freeze, ["~> 3.1"])
366
+ s.add_dependency(%q<sentry-ruby>.freeze, ["~> 4.1"])
367
+ s.add_dependency(%q<sentry-sidekiq>.freeze, ["~> 4.1"])
242
368
  s.add_dependency(%q<skylight>.freeze, ["~> 4.3"])
243
369
  s.add_dependency(%q<phony>.freeze, ["~> 2.18"])
244
370
  s.add_dependency(%q<bundler>.freeze, ["~> 1.17"])
@@ -0,0 +1,345 @@
1
+ --
2
+ -- PostgreSQL database dump
3
+ --
4
+
5
+ -- Dumped from database version 13.1
6
+ -- Dumped by pg_dump version 13.1
7
+
8
+ SET statement_timeout = 0;
9
+ SET lock_timeout = 0;
10
+ SET idle_in_transaction_session_timeout = 0;
11
+ SET client_encoding = 'UTF8';
12
+ SET standard_conforming_strings = on;
13
+ SELECT pg_catalog.set_config('search_path', '', false);
14
+ SET check_function_bodies = false;
15
+ SET xmloption = content;
16
+ SET client_min_messages = warning;
17
+ SET row_security = off;
18
+
19
+ --
20
+ -- Name: claim_type; Type: TYPE; Schema: public; Owner: jason
21
+ --
22
+
23
+ CREATE TYPE public.claim_type AS ENUM (
24
+ 'email',
25
+ 'phone'
26
+ );
27
+
28
+
29
+ ALTER TYPE public.claim_type OWNER TO jason;
30
+
31
+ --
32
+ -- Name: punk_state; Type: TYPE; Schema: public; Owner: jason
33
+ --
34
+
35
+ CREATE TYPE public.punk_state AS ENUM (
36
+ 'created',
37
+ 'active',
38
+ 'deleted'
39
+ );
40
+
41
+
42
+ ALTER TYPE public.punk_state OWNER TO jason;
43
+
44
+ --
45
+ -- Name: session_state; Type: TYPE; Schema: public; Owner: jason
46
+ --
47
+
48
+ CREATE TYPE public.session_state AS ENUM (
49
+ 'pending',
50
+ 'created',
51
+ 'active',
52
+ 'deleted',
53
+ 'expired'
54
+ );
55
+
56
+
57
+ ALTER TYPE public.session_state OWNER TO jason;
58
+
59
+ SET default_tablespace = '';
60
+
61
+ SET default_table_access_method = heap;
62
+
63
+ --
64
+ -- Name: groups; Type: TABLE; Schema: public; Owner: jason
65
+ --
66
+
67
+ CREATE TABLE public.groups (
68
+ id uuid DEFAULT gen_random_uuid() NOT NULL,
69
+ state public.punk_state DEFAULT 'created'::public.punk_state NOT NULL,
70
+ name text NOT NULL,
71
+ icon text,
72
+ data jsonb DEFAULT '{}'::jsonb,
73
+ created_at timestamp with time zone,
74
+ updated_at timestamp with time zone,
75
+ tenant_id uuid NOT NULL
76
+ );
77
+
78
+
79
+ ALTER TABLE public.groups OWNER TO jason;
80
+
81
+ --
82
+ -- Name: groups_users; Type: TABLE; Schema: public; Owner: jason
83
+ --
84
+
85
+ CREATE TABLE public.groups_users (
86
+ group_id uuid NOT NULL,
87
+ user_id uuid NOT NULL
88
+ );
89
+
90
+
91
+ ALTER TABLE public.groups_users OWNER TO jason;
92
+
93
+ --
94
+ -- Name: identities; Type: TABLE; Schema: public; Owner: jason
95
+ --
96
+
97
+ CREATE TABLE public.identities (
98
+ id uuid DEFAULT gen_random_uuid() NOT NULL,
99
+ state public.punk_state DEFAULT 'created'::public.punk_state NOT NULL,
100
+ claim_type public.claim_type NOT NULL,
101
+ claim text NOT NULL,
102
+ data jsonb DEFAULT '{}'::jsonb,
103
+ created_at timestamp with time zone,
104
+ updated_at timestamp with time zone,
105
+ user_id uuid
106
+ );
107
+
108
+
109
+ ALTER TABLE public.identities OWNER TO jason;
110
+
111
+ --
112
+ -- Name: schema_info; Type: TABLE; Schema: public; Owner: jason
113
+ --
114
+
115
+ CREATE TABLE public.schema_info (
116
+ version integer DEFAULT 0 NOT NULL
117
+ );
118
+
119
+
120
+ ALTER TABLE public.schema_info OWNER TO jason;
121
+
122
+ --
123
+ -- Name: sessions; Type: TABLE; Schema: public; Owner: jason
124
+ --
125
+
126
+ CREATE TABLE public.sessions (
127
+ id uuid DEFAULT gen_random_uuid() NOT NULL,
128
+ slug uuid DEFAULT gen_random_uuid(),
129
+ state public.session_state DEFAULT 'created'::public.session_state NOT NULL,
130
+ salt bytea,
131
+ hash bytea,
132
+ attempt_count integer DEFAULT 0 NOT NULL,
133
+ remote_addr cidr DEFAULT '127.0.0.1/32'::cidr NOT NULL,
134
+ user_agent text DEFAULT 'Mozilla/5.0 (compatible; Punk!; +https://punk.kranzky.com)'::text NOT NULL,
135
+ data jsonb DEFAULT '{}'::jsonb,
136
+ created_at timestamp with time zone,
137
+ updated_at timestamp with time zone,
138
+ identity_id uuid NOT NULL
139
+ );
140
+
141
+
142
+ ALTER TABLE public.sessions OWNER TO jason;
143
+
144
+ --
145
+ -- Name: tenants; Type: TABLE; Schema: public; Owner: jason
146
+ --
147
+
148
+ CREATE TABLE public.tenants (
149
+ id uuid DEFAULT gen_random_uuid() NOT NULL,
150
+ state public.punk_state DEFAULT 'created'::public.punk_state NOT NULL,
151
+ name text NOT NULL,
152
+ icon text,
153
+ data jsonb DEFAULT '{}'::jsonb,
154
+ created_at timestamp with time zone,
155
+ updated_at timestamp with time zone
156
+ );
157
+
158
+
159
+ ALTER TABLE public.tenants OWNER TO jason;
160
+
161
+ --
162
+ -- Name: tenants_users; Type: TABLE; Schema: public; Owner: jason
163
+ --
164
+
165
+ CREATE TABLE public.tenants_users (
166
+ tenant_id uuid NOT NULL,
167
+ user_id uuid NOT NULL
168
+ );
169
+
170
+
171
+ ALTER TABLE public.tenants_users OWNER TO jason;
172
+
173
+ --
174
+ -- Name: users; Type: TABLE; Schema: public; Owner: jason
175
+ --
176
+
177
+ CREATE TABLE public.users (
178
+ id uuid DEFAULT gen_random_uuid() NOT NULL,
179
+ state public.punk_state DEFAULT 'created'::public.punk_state NOT NULL,
180
+ name text NOT NULL,
181
+ icon text,
182
+ email text,
183
+ phone text,
184
+ data jsonb DEFAULT '{}'::jsonb,
185
+ created_at timestamp with time zone,
186
+ updated_at timestamp with time zone
187
+ );
188
+
189
+
190
+ ALTER TABLE public.users OWNER TO jason;
191
+
192
+ --
193
+ -- Name: groups groups_pkey; Type: CONSTRAINT; Schema: public; Owner: jason
194
+ --
195
+
196
+ ALTER TABLE ONLY public.groups
197
+ ADD CONSTRAINT groups_pkey PRIMARY KEY (id);
198
+
199
+
200
+ --
201
+ -- Name: groups_users groups_users_pkey; Type: CONSTRAINT; Schema: public; Owner: jason
202
+ --
203
+
204
+ ALTER TABLE ONLY public.groups_users
205
+ ADD CONSTRAINT groups_users_pkey PRIMARY KEY (group_id, user_id);
206
+
207
+
208
+ --
209
+ -- Name: identities identities_claim_key; Type: CONSTRAINT; Schema: public; Owner: jason
210
+ --
211
+
212
+ ALTER TABLE ONLY public.identities
213
+ ADD CONSTRAINT identities_claim_key UNIQUE (claim);
214
+
215
+
216
+ --
217
+ -- Name: identities identities_pkey; Type: CONSTRAINT; Schema: public; Owner: jason
218
+ --
219
+
220
+ ALTER TABLE ONLY public.identities
221
+ ADD CONSTRAINT identities_pkey PRIMARY KEY (id);
222
+
223
+
224
+ --
225
+ -- Name: sessions sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: jason
226
+ --
227
+
228
+ ALTER TABLE ONLY public.sessions
229
+ ADD CONSTRAINT sessions_pkey PRIMARY KEY (id);
230
+
231
+
232
+ --
233
+ -- Name: tenants tenants_pkey; Type: CONSTRAINT; Schema: public; Owner: jason
234
+ --
235
+
236
+ ALTER TABLE ONLY public.tenants
237
+ ADD CONSTRAINT tenants_pkey PRIMARY KEY (id);
238
+
239
+
240
+ --
241
+ -- Name: tenants_users tenants_users_pkey; Type: CONSTRAINT; Schema: public; Owner: jason
242
+ --
243
+
244
+ ALTER TABLE ONLY public.tenants_users
245
+ ADD CONSTRAINT tenants_users_pkey PRIMARY KEY (tenant_id, user_id);
246
+
247
+
248
+ --
249
+ -- Name: users users_email_key; Type: CONSTRAINT; Schema: public; Owner: jason
250
+ --
251
+
252
+ ALTER TABLE ONLY public.users
253
+ ADD CONSTRAINT users_email_key UNIQUE (email);
254
+
255
+
256
+ --
257
+ -- Name: users users_phone_key; Type: CONSTRAINT; Schema: public; Owner: jason
258
+ --
259
+
260
+ ALTER TABLE ONLY public.users
261
+ ADD CONSTRAINT users_phone_key UNIQUE (phone);
262
+
263
+
264
+ --
265
+ -- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: jason
266
+ --
267
+
268
+ ALTER TABLE ONLY public.users
269
+ ADD CONSTRAINT users_pkey PRIMARY KEY (id);
270
+
271
+
272
+ --
273
+ -- Name: groups_users_group_id_user_id_index; Type: INDEX; Schema: public; Owner: jason
274
+ --
275
+
276
+ CREATE INDEX groups_users_group_id_user_id_index ON public.groups_users USING btree (group_id, user_id);
277
+
278
+
279
+ --
280
+ -- Name: tenants_users_tenant_id_user_id_index; Type: INDEX; Schema: public; Owner: jason
281
+ --
282
+
283
+ CREATE INDEX tenants_users_tenant_id_user_id_index ON public.tenants_users USING btree (tenant_id, user_id);
284
+
285
+
286
+ --
287
+ -- Name: groups groups_tenant_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: jason
288
+ --
289
+
290
+ ALTER TABLE ONLY public.groups
291
+ ADD CONSTRAINT groups_tenant_id_fkey FOREIGN KEY (tenant_id) REFERENCES public.tenants(id);
292
+
293
+
294
+ --
295
+ -- Name: groups_users groups_users_group_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: jason
296
+ --
297
+
298
+ ALTER TABLE ONLY public.groups_users
299
+ ADD CONSTRAINT groups_users_group_id_fkey FOREIGN KEY (group_id) REFERENCES public.groups(id);
300
+
301
+
302
+ --
303
+ -- Name: groups_users groups_users_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: jason
304
+ --
305
+
306
+ ALTER TABLE ONLY public.groups_users
307
+ ADD CONSTRAINT groups_users_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);
308
+
309
+
310
+ --
311
+ -- Name: identities identities_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: jason
312
+ --
313
+
314
+ ALTER TABLE ONLY public.identities
315
+ ADD CONSTRAINT identities_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);
316
+
317
+
318
+ --
319
+ -- Name: sessions sessions_identity_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: jason
320
+ --
321
+
322
+ ALTER TABLE ONLY public.sessions
323
+ ADD CONSTRAINT sessions_identity_id_fkey FOREIGN KEY (identity_id) REFERENCES public.identities(id);
324
+
325
+
326
+ --
327
+ -- Name: tenants_users tenants_users_tenant_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: jason
328
+ --
329
+
330
+ ALTER TABLE ONLY public.tenants_users
331
+ ADD CONSTRAINT tenants_users_tenant_id_fkey FOREIGN KEY (tenant_id) REFERENCES public.tenants(id);
332
+
333
+
334
+ --
335
+ -- Name: tenants_users tenants_users_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: jason
336
+ --
337
+
338
+ ALTER TABLE ONLY public.tenants_users
339
+ ADD CONSTRAINT tenants_users_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);
340
+
341
+
342
+ --
343
+ -- PostgreSQL database dump complete
344
+ --
345
+