panda_pal 5.4.3 → 5.4.6
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/app/controllers/panda_pal/application_controller.rb +8 -0
- data/app/lib/panda_pal/launch_url_helpers.rb +14 -0
- data/app/models/panda_pal/organization.rb +4 -0
- data/app/models/panda_pal/organization_concerns/task_scheduling.rb +12 -5
- data/lib/panda_pal/helpers.rb +0 -1
- data/lib/panda_pal/version.rb +1 -1
- metadata +34 -40
- data/app/lib/panda_pal/batch_processor.rb +0 -41
- data/lib/panda_pal/helpers/ability_mixin.rb +0 -85
- data/spec/dummy/log/development.log +0 -56
- data/spec/dummy/log/test.log +0 -83348
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47e93c2f05e4078784f066642ed837e56c60cab9d342a2b9cd0d5e72192a248c
|
4
|
+
data.tar.gz: 4bd5d5e668b0a6a4cd069234170d460bfc44bdd80bc2b0b872b1f00cdbe77339
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67905790789c0a503b453c09abd1255d7b4720a313cc60be816db7cf58806e878b52933eb749f346b78291780d17632bb6cabed66581426614a3e4b5f999b653
|
7
|
+
data.tar.gz: 913aa637b83f0de8d664dfbb811ce379a61c4fae6cc7c64c79eab9f95c167b0428fff77bb83bb3faed8880d129605f5026a085f1f62960b7755176c1df392972
|
@@ -1,4 +1,12 @@
|
|
1
1
|
module PandaPal
|
2
2
|
class ApplicationController < ActionController::Base
|
3
|
+
around_action :share_controller_on_thread
|
4
|
+
|
5
|
+
def share_controller_on_thread
|
6
|
+
Thread.current[:controller] = self
|
7
|
+
yield
|
8
|
+
ensure
|
9
|
+
Thread.current[:controller] = nil
|
10
|
+
end
|
3
11
|
end
|
4
12
|
end
|
@@ -17,10 +17,24 @@ module PandaPal
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
def self.url_for(options)
|
21
|
+
request = Thread.current[:controller]&.request
|
22
|
+
host = "#{request.scheme}://#{request.host_with_port}"
|
23
|
+
if options.is_a?(Symbol)
|
24
|
+
Rails.application.routes.url_helpers.send(options, host: host)
|
25
|
+
else
|
26
|
+
options[:host] ||= host
|
27
|
+
Rails.application.routes.url_helpers.url_for(options)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
20
31
|
def self.normalize_lti_launch_desc(opts)
|
21
32
|
opts = opts.dup
|
22
33
|
opts.delete(:route_helper_key)
|
23
34
|
opts.delete(:auto_launch)
|
35
|
+
opts.each do |k, v|
|
36
|
+
opts[k] = v.call if v.is_a?(Proc)
|
37
|
+
end
|
24
38
|
opts
|
25
39
|
end
|
26
40
|
|
@@ -99,6 +99,7 @@ module PandaPal
|
|
99
99
|
'queue' => desc[:queue],
|
100
100
|
'class' => ScheduledTaskExecutor.to_s,
|
101
101
|
'args' => [name, desc[:key]],
|
102
|
+
'enabled' => !Rails.env.development?,
|
102
103
|
}
|
103
104
|
end
|
104
105
|
schedule
|
@@ -198,13 +199,19 @@ module PandaPal
|
|
198
199
|
|
199
200
|
Apartment::Tenant.switch(org.name) do
|
200
201
|
if worker.is_a?(Proc)
|
201
|
-
org.instance_exec(&worker)
|
202
|
+
return org.instance_exec(&worker)
|
202
203
|
elsif worker.is_a?(Symbol)
|
203
|
-
org.send(worker)
|
204
|
+
return org.send(worker)
|
204
205
|
elsif worker.is_a?(String)
|
205
|
-
worker.constantize
|
206
|
-
|
207
|
-
|
206
|
+
worker = worker.constantize
|
207
|
+
end
|
208
|
+
|
209
|
+
if worker.is_a?(Class)
|
210
|
+
if worker.respond_to?(:perform_async)
|
211
|
+
worker.perform_async
|
212
|
+
else
|
213
|
+
worker.perform_later
|
214
|
+
end
|
208
215
|
end
|
209
216
|
end
|
210
217
|
end
|
data/lib/panda_pal/helpers.rb
CHANGED
data/lib/panda_pal/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: panda_pal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.4.
|
4
|
+
version: 5.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Instructure ProServe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -202,7 +202,6 @@ files:
|
|
202
202
|
- app/lib/lti_xml/base_platform.rb
|
203
203
|
- app/lib/lti_xml/bridge_platform.rb
|
204
204
|
- app/lib/lti_xml/canvas_platform.rb
|
205
|
-
- app/lib/panda_pal/batch_processor.rb
|
206
205
|
- app/lib/panda_pal/launch_url_helpers.rb
|
207
206
|
- app/lib/panda_pal/lti_jwt_validator.rb
|
208
207
|
- app/lib/panda_pal/misc_helper.rb
|
@@ -227,7 +226,6 @@ files:
|
|
227
226
|
- lib/panda_pal.rb
|
228
227
|
- lib/panda_pal/engine.rb
|
229
228
|
- lib/panda_pal/helpers.rb
|
230
|
-
- lib/panda_pal/helpers/ability_mixin.rb
|
231
229
|
- lib/panda_pal/helpers/controller_helper.rb
|
232
230
|
- lib/panda_pal/helpers/route_helper.rb
|
233
231
|
- lib/panda_pal/helpers/secure_headers.rb
|
@@ -266,8 +264,6 @@ files:
|
|
266
264
|
- spec/dummy/config/routes.rb
|
267
265
|
- spec/dummy/config/secrets.yml
|
268
266
|
- spec/dummy/db/schema.rb
|
269
|
-
- spec/dummy/log/development.log
|
270
|
-
- spec/dummy/log/test.log
|
271
267
|
- spec/dummy/public/404.html
|
272
268
|
- spec/dummy/public/422.html
|
273
269
|
- spec/dummy/public/500.html
|
@@ -304,47 +300,45 @@ signing_key:
|
|
304
300
|
specification_version: 4
|
305
301
|
summary: LTI mountable engine
|
306
302
|
test_files:
|
303
|
+
- spec/rails_helper.rb
|
304
|
+
- spec/models/panda_pal/organization_spec.rb
|
305
|
+
- spec/models/panda_pal/session_spec.rb
|
306
|
+
- spec/models/panda_pal/organization/settings_validation_spec.rb
|
307
|
+
- spec/models/panda_pal/organization/task_scheduling_spec.rb
|
307
308
|
- spec/spec_helper.rb
|
308
|
-
- spec/dummy/
|
309
|
+
- spec/dummy/db/schema.rb
|
310
|
+
- spec/dummy/public/422.html
|
311
|
+
- spec/dummy/public/favicon.ico
|
312
|
+
- spec/dummy/public/404.html
|
313
|
+
- spec/dummy/public/500.html
|
314
|
+
- spec/dummy/Rakefile
|
309
315
|
- spec/dummy/app/views/layouts/application.html.erb
|
310
|
-
- spec/dummy/app/
|
311
|
-
- spec/dummy/app/assets/stylesheets/application.css
|
316
|
+
- spec/dummy/app/controllers/application_controller.rb
|
312
317
|
- spec/dummy/app/helpers/application_helper.rb
|
313
|
-
- spec/dummy/
|
314
|
-
- spec/dummy/
|
315
|
-
- spec/dummy/bin/bundle
|
316
|
-
- spec/dummy/bin/rails
|
318
|
+
- spec/dummy/app/assets/stylesheets/application.css
|
319
|
+
- spec/dummy/app/assets/javascripts/application.js
|
317
320
|
- spec/dummy/config/secrets.yml
|
318
|
-
- spec/dummy/config/routes.rb
|
319
|
-
- spec/dummy/config/locales/en.yml
|
320
|
-
- spec/dummy/config/environments/production.rb
|
321
|
-
- spec/dummy/config/environments/development.rb
|
322
|
-
- spec/dummy/config/environments/test.rb
|
323
|
-
- spec/dummy/config/environment.rb
|
324
321
|
- spec/dummy/config/application.rb
|
325
|
-
- spec/dummy/config/database.yml
|
326
|
-
- spec/dummy/config/boot.rb
|
327
|
-
- spec/dummy/config/initializers/backtrace_silencers.rb
|
328
|
-
- spec/dummy/config/initializers/mime_types.rb
|
329
|
-
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
330
322
|
- spec/dummy/config/initializers/session_store.rb
|
331
323
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
332
|
-
- spec/dummy/config/initializers/cookies_serializer.rb
|
333
324
|
- spec/dummy/config/initializers/inflections.rb
|
334
|
-
- spec/dummy/config.
|
335
|
-
- spec/dummy/
|
336
|
-
- spec/dummy/
|
337
|
-
- spec/dummy/
|
338
|
-
- spec/dummy/
|
339
|
-
- spec/dummy/
|
340
|
-
- spec/dummy/
|
341
|
-
- spec/dummy/
|
342
|
-
- spec/dummy/
|
325
|
+
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
326
|
+
- spec/dummy/config/initializers/mime_types.rb
|
327
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
328
|
+
- spec/dummy/config/initializers/cookies_serializer.rb
|
329
|
+
- spec/dummy/config/environments/development.rb
|
330
|
+
- spec/dummy/config/environments/test.rb
|
331
|
+
- spec/dummy/config/environments/production.rb
|
332
|
+
- spec/dummy/config/database.yml
|
333
|
+
- spec/dummy/config/boot.rb
|
334
|
+
- spec/dummy/config/routes.rb
|
335
|
+
- spec/dummy/config/environment.rb
|
336
|
+
- spec/dummy/config/locales/en.yml
|
343
337
|
- spec/dummy/README.rdoc
|
344
|
-
- spec/
|
345
|
-
- spec/
|
346
|
-
- spec/
|
347
|
-
- spec/
|
348
|
-
- spec/
|
338
|
+
- spec/dummy/config.ru
|
339
|
+
- spec/dummy/bin/bundle
|
340
|
+
- spec/dummy/bin/rake
|
341
|
+
- spec/dummy/bin/setup
|
342
|
+
- spec/dummy/bin/rails
|
349
343
|
- spec/factories/panda_pal_organizations.rb
|
350
|
-
- spec/
|
344
|
+
- spec/factories/panda_pal_sessions.rb
|
@@ -1,41 +0,0 @@
|
|
1
|
-
module PandaPal
|
2
|
-
# An array that "processes" after so many items are added.
|
3
|
-
#
|
4
|
-
# Example Usage:
|
5
|
-
# batches = BatchProcessor.new(of: 1000) do |batch|
|
6
|
-
# # Process the batch somehow
|
7
|
-
# end
|
8
|
-
# enumerator_of_some_kind.each { |item| batches << item }
|
9
|
-
# batches.flush
|
10
|
-
class BatchProcessor
|
11
|
-
attr_reader :batch_size
|
12
|
-
|
13
|
-
def initialize(of: 1000, &blk)
|
14
|
-
@batch_size = of
|
15
|
-
@block = blk
|
16
|
-
@current_batch = []
|
17
|
-
end
|
18
|
-
|
19
|
-
def <<(item)
|
20
|
-
@current_batch << item
|
21
|
-
process_batch if @current_batch.count >= batch_size
|
22
|
-
end
|
23
|
-
|
24
|
-
def add_all(items)
|
25
|
-
items.each do |i|
|
26
|
-
self << i
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def flush
|
31
|
-
process_batch if @current_batch.present?
|
32
|
-
end
|
33
|
-
|
34
|
-
protected
|
35
|
-
|
36
|
-
def process_batch
|
37
|
-
@block.call(@current_batch)
|
38
|
-
@current_batch = []
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,85 +0,0 @@
|
|
1
|
-
module PandaPal
|
2
|
-
module AbilityMixin
|
3
|
-
extend ActiveSupport::Concern
|
4
|
-
|
5
|
-
class_methods do
|
6
|
-
def self.role_permissions(labels)
|
7
|
-
roles = find_roles_by_label(labels)
|
8
|
-
|
9
|
-
if Rails.env.test? && roles.count == 0 && (labels || []).include?('Administrator')
|
10
|
-
return Hash.new(true)
|
11
|
-
end
|
12
|
-
|
13
|
-
final = {}
|
14
|
-
roles.find_each do |role|
|
15
|
-
role.permissions.each do |perm_name, perm|
|
16
|
-
final[perm_name] = false if final[perm_name].nil?
|
17
|
-
final[perm_name] = true if perm['enabled'] == true
|
18
|
-
end
|
19
|
-
end
|
20
|
-
final
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.find_roles_by_label(labels)
|
24
|
-
raise "PandaPal AbilityMixin's support for Roles and Permissions requires that Roles be synced by CanvasSync" unless defined?(Role)
|
25
|
-
|
26
|
-
built_ins = []
|
27
|
-
labels = labels.split(',') if labels.is_a?(String)
|
28
|
-
custom_labels = Array(labels).reject do |l|
|
29
|
-
if role_is_default?(l)
|
30
|
-
built_ins << l
|
31
|
-
elsif l == 'Account Admin'
|
32
|
-
built_ins << 'AccountMembership'
|
33
|
-
else
|
34
|
-
next
|
35
|
-
end
|
36
|
-
true
|
37
|
-
end
|
38
|
-
Role.where(workflow_state: 'built_in', base_role_type: built_ins)
|
39
|
-
.or(Role.where.not(workflow_state: 'built_in').where(label: custom_labels))
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.role_is_default?(role)
|
43
|
-
%w[TeacherEnrollment TaEnrollment StudentEnrollment DesignerEnrollment ObserverEnrollment].include? role
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def is_lti_launch?
|
48
|
-
@controller.current_session.present?
|
49
|
-
end
|
50
|
-
|
51
|
-
def panda_pal_session
|
52
|
-
@panda_pal_session ||= @controller.current_session&.data || {}
|
53
|
-
end
|
54
|
-
|
55
|
-
def rails_session
|
56
|
-
@rails_session ||= @controller.session
|
57
|
-
end
|
58
|
-
|
59
|
-
def launch_params
|
60
|
-
@launch_params ||= panda_pal_session[:launch_params] || {}
|
61
|
-
end
|
62
|
-
|
63
|
-
# Roles and Permissions
|
64
|
-
def lti_roles
|
65
|
-
@lti_roles ||= LTIRoles::RoleManager.new(launch_params['ext_roles'] || '')
|
66
|
-
end
|
67
|
-
|
68
|
-
def canvas_permissions
|
69
|
-
panda_pal_session[:canvas_permissions] ||= self.class.role_permissions(launch_params['custom_canvas_role'])
|
70
|
-
end
|
71
|
-
|
72
|
-
def canvas_role_labels
|
73
|
-
labels = launch_params['custom_canvas_role']
|
74
|
-
labels.is_a?(String) ? labels.split(',') : []
|
75
|
-
end
|
76
|
-
|
77
|
-
def canvas_roles
|
78
|
-
self.class.find_roles_by_label(canvas_role_labels)
|
79
|
-
end
|
80
|
-
|
81
|
-
def launch_role_ids
|
82
|
-
panda_pal_session[:launch_role_ids] ||= canvas_roles.map(&:canvas_id)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
[1m[35m (1.2ms)[0m [1m[35mDROP DATABASE IF EXISTS "panda_pal_development"[0m
|
2
|
-
[1m[35m (0.2ms)[0m [1m[35mDROP DATABASE IF EXISTS "panda_pal_test"[0m
|
3
|
-
[1m[35m (82.9ms)[0m [1m[35mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)[0m
|
4
|
-
[1m[35m (11.8ms)[0m [1m[35mCREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)[0m
|
5
|
-
[1m[35m (0.3ms)[0m [1m[34mSELECT pg_try_advisory_lock(7878782013693407355);[0m
|
6
|
-
[1m[35m (2.8ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
7
|
-
[1m[36mActiveRecord::InternalMetadata Load (2.2ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2[0m [["key", "environment"], ["LIMIT", 1]]
|
8
|
-
[1m[35m (0.2ms)[0m [1m[35mBEGIN[0m
|
9
|
-
[1m[35mSQL (3.2ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key"[0m [["key", "environment"], ["value", "development"], ["created_at", "2020-04-30 16:44:35.134620"], ["updated_at", "2020-04-30 16:44:35.134620"]]
|
10
|
-
[1m[35m (0.6ms)[0m [1m[35mCOMMIT[0m
|
11
|
-
[1m[35m (0.3ms)[0m [1m[34mSELECT pg_advisory_unlock(7878782013693407355)[0m
|
12
|
-
[1m[35m (0.2ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
13
|
-
[1m[35m (0.5ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
14
|
-
[1m[35m (0.1ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
15
|
-
[1m[35m (211.6ms)[0m [1m[35mDROP DATABASE IF EXISTS "panda_pal_development"[0m
|
16
|
-
[1m[35m (247.6ms)[0m [1m[35mDROP DATABASE IF EXISTS "panda_pal_test"[0m
|
17
|
-
[1m[35mSQL (0.4ms)[0m [1m[35mCREATE EXTENSION IF NOT EXISTS "plpgsql"[0m
|
18
|
-
[1m[35m (8.5ms)[0m [1m[35mDROP TABLE IF EXISTS "panda_pal_organizations" CASCADE[0m
|
19
|
-
[1m[35m (14.4ms)[0m [1m[35mCREATE TABLE "panda_pal_organizations" ("id" bigserial primary key, "name" character varying, "key" character varying, "secret" character varying, "canvas_account_id" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, "salesforce_id" character varying, "encrypted_settings" text, "encrypted_settings_iv" character varying)[0m
|
20
|
-
[1m[35m (2.5ms)[0m [1m[35mCREATE UNIQUE INDEX "index_panda_pal_organizations_on_key" ON "panda_pal_organizations" ("key")[0m
|
21
|
-
[1m[35m (2.6ms)[0m [1m[35mCREATE UNIQUE INDEX "index_panda_pal_organizations_on_name" ON "panda_pal_organizations" ("name")[0m
|
22
|
-
[1m[35m (0.2ms)[0m [1m[35mDROP TABLE IF EXISTS "panda_pal_sessions" CASCADE[0m
|
23
|
-
[1m[35m (6.5ms)[0m [1m[35mCREATE TABLE "panda_pal_sessions" ("id" bigserial primary key, "session_key" character varying, "data" text, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, "panda_pal_organization_id" integer)[0m
|
24
|
-
[1m[35m (1.9ms)[0m [1m[35mCREATE INDEX "index_panda_pal_sessions_on_panda_pal_organization_id" ON "panda_pal_sessions" ("panda_pal_organization_id")[0m
|
25
|
-
[1m[35m (2.5ms)[0m [1m[35mCREATE UNIQUE INDEX "index_panda_pal_sessions_on_session_key" ON "panda_pal_sessions" ("session_key")[0m
|
26
|
-
[1m[35m (3.5ms)[0m [1m[35mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)[0m
|
27
|
-
[1m[35m (1.4ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
28
|
-
[1m[35m (0.6ms)[0m [1m[32mINSERT INTO "schema_migrations" (version) VALUES (20171205194657)[0m
|
29
|
-
[1m[35m (47.2ms)[0m [1m[35mCREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)[0m
|
30
|
-
[1m[36mActiveRecord::InternalMetadata Load (1.0ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2[0m [["key", "environment"], ["LIMIT", 1]]
|
31
|
-
[1m[35m (0.4ms)[0m [1m[35mBEGIN[0m
|
32
|
-
[1m[35mSQL (0.4ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key"[0m [["key", "environment"], ["value", "development"], ["created_at", "2020-04-30 17:00:14.956327"], ["updated_at", "2020-04-30 17:00:14.956327"]]
|
33
|
-
[1m[35m (0.5ms)[0m [1m[35mCOMMIT[0m
|
34
|
-
[1m[36mActiveRecord::InternalMetadata Load (0.2ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2[0m [["key", "environment"], ["LIMIT", 1]]
|
35
|
-
[1m[35m (0.1ms)[0m [1m[35mBEGIN[0m
|
36
|
-
[1m[35m (0.2ms)[0m [1m[35mCOMMIT[0m
|
37
|
-
[1m[35mSQL (0.4ms)[0m [1m[35mCREATE EXTENSION IF NOT EXISTS "plpgsql"[0m
|
38
|
-
[1m[35m (0.3ms)[0m [1m[35mDROP TABLE IF EXISTS "panda_pal_organizations" CASCADE[0m
|
39
|
-
[1m[35m (52.5ms)[0m [1m[35mCREATE TABLE "panda_pal_organizations" ("id" bigserial primary key, "name" character varying, "key" character varying, "secret" character varying, "canvas_account_id" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, "salesforce_id" character varying, "encrypted_settings" text, "encrypted_settings_iv" character varying)[0m
|
40
|
-
[1m[35m (2.4ms)[0m [1m[35mCREATE UNIQUE INDEX "index_panda_pal_organizations_on_key" ON "panda_pal_organizations" ("key")[0m
|
41
|
-
[1m[35m (1.9ms)[0m [1m[35mCREATE UNIQUE INDEX "index_panda_pal_organizations_on_name" ON "panda_pal_organizations" ("name")[0m
|
42
|
-
[1m[35m (0.2ms)[0m [1m[35mDROP TABLE IF EXISTS "panda_pal_sessions" CASCADE[0m
|
43
|
-
[1m[35m (6.0ms)[0m [1m[35mCREATE TABLE "panda_pal_sessions" ("id" bigserial primary key, "session_key" character varying, "data" text, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, "panda_pal_organization_id" integer)[0m
|
44
|
-
[1m[35m (1.8ms)[0m [1m[35mCREATE INDEX "index_panda_pal_sessions_on_panda_pal_organization_id" ON "panda_pal_sessions" ("panda_pal_organization_id")[0m
|
45
|
-
[1m[35m (1.8ms)[0m [1m[35mCREATE UNIQUE INDEX "index_panda_pal_sessions_on_session_key" ON "panda_pal_sessions" ("session_key")[0m
|
46
|
-
[1m[35m (4.8ms)[0m [1m[35mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)[0m
|
47
|
-
[1m[35m (0.9ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
48
|
-
[1m[35m (4.0ms)[0m [1m[32mINSERT INTO "schema_migrations" (version) VALUES (20171205194657)[0m
|
49
|
-
[1m[35m (6.5ms)[0m [1m[35mCREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)[0m
|
50
|
-
[1m[36mActiveRecord::InternalMetadata Load (2.5ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2[0m [["key", "environment"], ["LIMIT", 1]]
|
51
|
-
[1m[35m (0.1ms)[0m [1m[35mBEGIN[0m
|
52
|
-
[1m[35mSQL (5.0ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key"[0m [["key", "environment"], ["value", "development"], ["created_at", "2020-04-30 17:00:15.126316"], ["updated_at", "2020-04-30 17:00:15.126316"]]
|
53
|
-
[1m[35m (0.4ms)[0m [1m[35mCOMMIT[0m
|
54
|
-
[1m[36mActiveRecord::InternalMetadata Load (0.2ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2[0m [["key", "environment"], ["LIMIT", 1]]
|
55
|
-
[1m[35m (0.2ms)[0m [1m[35mBEGIN[0m
|
56
|
-
[1m[35m (0.1ms)[0m [1m[35mCOMMIT[0m
|