neeto-jwt-engine 1.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 +7 -0
- data/README.md +89 -0
- data/Rakefile +20 -0
- data/app/controllers/concerns/neeto_jwt_engine/api_exceptions.rb +77 -0
- data/app/controllers/concerns/neeto_jwt_engine/authenticatable.rb +20 -0
- data/app/controllers/neeto_jwt_engine/application_controller.rb +7 -0
- data/app/controllers/neeto_jwt_engine/configurations_controller.rb +54 -0
- data/app/models/concerns/neeto_jwt_engine/incinerable_concern.rb +26 -0
- data/app/models/neeto_jwt_engine/application_record.rb +7 -0
- data/app/models/neeto_jwt_engine/configuration.rb +24 -0
- data/app/models/neeto_jwt_engine/onetime_link.rb +19 -0
- data/app/services/neeto_jwt_engine/elliptic_key_generator_service.rb +44 -0
- data/app/views/layouts/neeto_jwt_engine/application.html.erb +15 -0
- data/config/brakeman.ignore +5 -0
- data/config/locales/en.yml +1 -0
- data/config/routes.rb +7 -0
- data/db/migrate/20250329064017_create_neeto_jwt_engine_configurations.rb +14 -0
- data/db/migrate/20250716075611_create_neeto_jwt_engine_onetime_links.rb +13 -0
- data/lib/neeto-jwt-engine.rb +5 -0
- data/lib/neeto_jwt_engine/engine.rb +7 -0
- data/lib/neeto_jwt_engine/exceptions.rb +5 -0
- data/lib/neeto_jwt_engine/version.rb +5 -0
- data/lib/omniauth/strategies/jwt.rb +93 -0
- data/test/controllers/neeto_jwt_engine/configurations_controller_test.rb +58 -0
- data/test/dummy/Rakefile +8 -0
- data/test/dummy/app/assets/config/manifest.js +3 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/channels/application_cable/channel.rb +6 -0
- data/test/dummy/app/channels/application_cable/connection.rb +6 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/controllers/concerns/sso_helpers.rb +20 -0
- data/test/dummy/app/helpers/application_helper.rb +4 -0
- data/test/dummy/app/javascript/packs/application.js +19 -0
- data/test/dummy/app/jobs/application_job.rb +9 -0
- data/test/dummy/app/mailers/application_mailer.rb +6 -0
- data/test/dummy/app/models/application_record.rb +5 -0
- data/test/dummy/app/models/organization.rb +10 -0
- data/test/dummy/app/models/user.rb +11 -0
- data/test/dummy/app/services/sample_data/common/admin_service.rb +26 -0
- data/test/dummy/app/services/sample_data/common/base.rb +43 -0
- data/test/dummy/app/services/sample_data/common/database_cleanup_service.rb +11 -0
- data/test/dummy/app/services/sample_data/common/loader_service.rb +34 -0
- data/test/dummy/app/services/sample_data/common/organization_service.rb +27 -0
- data/test/dummy/app/services/sample_data/loaders_list.rb +14 -0
- data/test/dummy/app/services/sample_data/user_service.rb +26 -0
- data/test/dummy/app/views/home/index.html.erb +1 -0
- data/test/dummy/app/views/layouts/application.html.erb +15 -0
- data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/test/dummy/app/views/users/index.json.jbuilder +19 -0
- data/test/dummy/bin/rails +6 -0
- data/test/dummy/bin/rake +6 -0
- data/test/dummy/bin/setup +37 -0
- data/test/dummy/bin/webpacker +16 -0
- data/test/dummy/bin/webpacker-dev-server +19 -0
- data/test/dummy/config/application.rb +29 -0
- data/test/dummy/config/boot.rb +7 -0
- data/test/dummy/config/cable.yml +10 -0
- data/test/dummy/config/database.yml +17 -0
- data/test/dummy/config/database.yml.ci +17 -0
- data/test/dummy/config/database.yml.postgresql +17 -0
- data/test/dummy/config/environment.rb +7 -0
- data/test/dummy/config/environments/development.rb +70 -0
- data/test/dummy/config/environments/production.rb +116 -0
- data/test/dummy/config/environments/test.rb +63 -0
- data/test/dummy/config/initializers/application_controller_renderer.rb +9 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +10 -0
- data/test/dummy/config/initializers/content_security_policy.rb +29 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +17 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/permissions_policy.rb +12 -0
- data/test/dummy/config/initializers/strong_migrations.rb +4 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +16 -0
- data/test/dummy/config/locales/en.yml +33 -0
- data/test/dummy/config/puma.rb +45 -0
- data/test/dummy/config/routes.rb +13 -0
- data/test/dummy/config/storage.yml +34 -0
- data/test/dummy/config/webpack/development.js +5 -0
- data/test/dummy/config/webpack/environment.js +13 -0
- data/test/dummy/config/webpack/production.js +5 -0
- data/test/dummy/config/webpack/resolve.js +11 -0
- data/test/dummy/config/webpack/test.js +5 -0
- data/test/dummy/config/webpack/webpack.config.js +20 -0
- data/test/dummy/config/webpacker.yml +73 -0
- data/test/dummy/config.ru +8 -0
- data/test/dummy/db/migrate/20220419104218_create_organizations.rb +15 -0
- data/test/dummy/db/migrate/20220419114209_create_users.rb +20 -0
- data/test/dummy/db/migrate/20240607032904_add_deactivated_at_to_organizations.rb +7 -0
- data/test/dummy/db/schema.rb +68 -0
- data/test/dummy/lib/tasks/setup.rake +48 -0
- data/test/dummy/log/development.log +71 -0
- data/test/dummy/log/test.log +5189 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/test/dummy/public/apple-touch-icon.png +0 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/tmp/local_secret.txt +1 -0
- data/test/dummy/tmp/restart.txt +0 -0
- data/test/factories/neeto_jwt_engine/configuration.rb +7 -0
- data/test/factories/neeto_jwt_engine/onetime_link.rb +7 -0
- data/test/factories/organization.rb +8 -0
- data/test/factories/user.rb +13 -0
- data/test/models/neeto_jwt_engine/configuration_test.rb +23 -0
- data/test/models/neeto_jwt_engine/onetime_link_test.rb +27 -0
- data/test/neeto_jwt_engine_test.rb +12 -0
- data/test/services/neeto_jwt_engine/elliptic_key_generator_service_test.rb +30 -0
- data/test/support/assertion_support.rb +9 -0
- data/test/test_helper.rb +30 -0
- metadata +168 -0
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This file is auto-generated from the current state of the database. Instead
|
4
|
+
# of editing this file, please use the migrations feature of Active Record to
|
5
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
6
|
+
#
|
7
|
+
# This file is the source Rails uses to define your schema when running `bin/rails
|
8
|
+
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
9
|
+
# be faster and is potentially less error prone than running all of your
|
10
|
+
# migrations from scratch. Old migrations may fail to apply correctly if those
|
11
|
+
# migrations use external dependencies or application code.
|
12
|
+
#
|
13
|
+
# It's strongly recommended that you check this file into your version control system.
|
14
|
+
|
15
|
+
ActiveRecord::Schema[7.1].define(version: 2025_07_16_075611) do
|
16
|
+
# These are extensions that must be enabled in order to support this database
|
17
|
+
enable_extension "pgcrypto"
|
18
|
+
enable_extension "plpgsql"
|
19
|
+
|
20
|
+
create_table "neeto_jwt_engine_configurations", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
21
|
+
t.text "public_key", null: false
|
22
|
+
t.text "private_key", null: false
|
23
|
+
t.boolean "enabled", default: true, null: false
|
24
|
+
t.uuid "organization_id", null: false
|
25
|
+
t.datetime "created_at", null: false
|
26
|
+
t.datetime "updated_at", null: false
|
27
|
+
t.index ["organization_id"], name: "index_neeto_jwt_engine_configurations_on_organization_id"
|
28
|
+
end
|
29
|
+
|
30
|
+
create_table "neeto_jwt_engine_onetime_links", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
31
|
+
t.string "link", null: false
|
32
|
+
t.boolean "expired", default: false, null: false
|
33
|
+
t.uuid "configuration_id", null: false
|
34
|
+
t.datetime "created_at", null: false
|
35
|
+
t.datetime "updated_at", null: false
|
36
|
+
t.index ["configuration_id"], name: "index_neeto_jwt_engine_onetime_links_on_configuration_id"
|
37
|
+
t.index ["link"], name: "index_neeto_jwt_engine_onetime_links_on_link", unique: true
|
38
|
+
end
|
39
|
+
|
40
|
+
create_table "organizations", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
41
|
+
t.string "name", null: false
|
42
|
+
t.string "subdomain", null: false
|
43
|
+
t.datetime "created_at", null: false
|
44
|
+
t.datetime "updated_at", null: false
|
45
|
+
t.datetime "deactivated_at"
|
46
|
+
t.index ["subdomain"], name: "index_organizations_on_subdomain", unique: true
|
47
|
+
end
|
48
|
+
|
49
|
+
create_table "users", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
50
|
+
t.string "first_name", null: false
|
51
|
+
t.string "last_name"
|
52
|
+
t.string "email", null: false
|
53
|
+
t.integer "experience"
|
54
|
+
t.string "timezone", null: false
|
55
|
+
t.text "permissions", array: true
|
56
|
+
t.jsonb "dates"
|
57
|
+
t.jsonb "duration"
|
58
|
+
t.uuid "organization_id", null: false
|
59
|
+
t.datetime "created_at", null: false
|
60
|
+
t.datetime "updated_at", null: false
|
61
|
+
t.index ["email"], name: "index_users_on_email", unique: true
|
62
|
+
t.index ["organization_id"], name: "index_users_on_organization_id"
|
63
|
+
end
|
64
|
+
|
65
|
+
add_foreign_key "neeto_jwt_engine_configurations", "organizations", on_delete: :cascade
|
66
|
+
add_foreign_key "neeto_jwt_engine_onetime_links", "neeto_jwt_engine_configurations", column: "configuration_id"
|
67
|
+
add_foreign_key "users", "organizations", on_delete: :cascade
|
68
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
desc "drops the db, creates db, migrates db and populates sample data"
|
4
|
+
task setup: [:environment, "db:drop", "db:create", "db:migrate"] do
|
5
|
+
Rake::Task[:setup_engine_migarations].invoke
|
6
|
+
Rake::Task["reset_and_populate_sample_data"].invoke if Rails.env.development?
|
7
|
+
end
|
8
|
+
|
9
|
+
task setup_engine_migarations: [:environment] do
|
10
|
+
sh "cd ../../ && bundle exec rails db:migrate"
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Check if perform_on_every_deploy should be executed or not"
|
14
|
+
task act_on_every_heroku_deployment: [:environment] do
|
15
|
+
if Rails.env.development? || Rails.env.heroku?
|
16
|
+
Rake::Task["reset_and_populate_sample_data"].invoke
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Populates sample data without resetting the database first"
|
21
|
+
task populate_sample_data: [:environment] do
|
22
|
+
puts "== Adding Sample Data ".ljust(79, "=")
|
23
|
+
SampleData::Common::LoaderService.new.process!
|
24
|
+
puts "== Adding Sample Data: Done ".ljust(79, "=")
|
25
|
+
end
|
26
|
+
|
27
|
+
desc "Populates sample data without after resetting the database"
|
28
|
+
task reset_and_populate_sample_data: [:environment] do
|
29
|
+
if Rails.env.production? || Rails.env.staging?
|
30
|
+
puts "Skipping deleting and populating sample data"
|
31
|
+
else
|
32
|
+
Rake::Task["populate_sample_data"].invoke
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
#
|
37
|
+
# DO NOT CHANGE ANYTHING IN THIS METHOD
|
38
|
+
# This is last layer of defense against deleting data in production
|
39
|
+
# If you need to delete data in staging or in production
|
40
|
+
# please execute the command manually and do not change this method
|
41
|
+
#
|
42
|
+
def delete_all_records_from_all_tables
|
43
|
+
if Rails.env.production?
|
44
|
+
raise "deleting all records in production is not allowed"
|
45
|
+
else
|
46
|
+
Rake::Task["db:schema:load"].invoke
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
[1m[35m (0.1ms)[0m [1m[34mSELECT pg_try_advisory_lock(2004589700309690025)[0m
|
2
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.9ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
3
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.9ms)[0m [1m[34mSELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1[0m [[nil, "environment"]]
|
4
|
+
Migrating to CreateNeetoJwtEngineOnetimeLinks (20250716075611)
|
5
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[35mBEGIN[0m
|
6
|
+
[1m[35m (6.6ms)[0m [1m[35mCREATE TABLE "neeto_jwt_engine_onetime_links" ("id" bigserial primary key, "link" character varying NOT NULL, "expired" boolean DEFAULT FALSE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL)[0m
|
7
|
+
[1m[35m (1.6ms)[0m [1m[35mCREATE UNIQUE INDEX "index_neeto_jwt_engine_onetime_links_on_link" ON "neeto_jwt_engine_onetime_links" ("link")[0m
|
8
|
+
[1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ('20250716075611') RETURNING "version"[0m
|
9
|
+
[1m[36mTRANSACTION (0.7ms)[0m [1m[35mCOMMIT[0m
|
10
|
+
[1m[35m (0.7ms)[0m [1m[34mSELECT pg_advisory_unlock(2004589700309690025)[0m
|
11
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
12
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.4ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
13
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
14
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
15
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT pg_try_advisory_lock(2004589700309690025)[0m
|
16
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
17
|
+
Migrating to CreateNeetoJwtEngineOnetimeLinks (20250716075611)
|
18
|
+
[1m[36mTRANSACTION (0.1ms)[0m [1m[35mBEGIN[0m
|
19
|
+
[1m[35m (4.2ms)[0m [1m[35mDROP TABLE "neeto_jwt_engine_onetime_links"[0m
|
20
|
+
[1m[36mActiveRecord::SchemaMigration Destroy (0.6ms)[0m [1m[31mDELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = '20250716075611'[0m
|
21
|
+
[1m[36mTRANSACTION (2.1ms)[0m [1m[35mCOMMIT[0m
|
22
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT pg_advisory_unlock(2004589700309690025)[0m
|
23
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
24
|
+
[1m[35m (0.1ms)[0m [1m[34mSELECT pg_try_advisory_lock(2004589700309690025)[0m
|
25
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.9ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
26
|
+
[1m[36mActiveRecord::InternalMetadata Load (1.3ms)[0m [1m[34mSELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1[0m [[nil, "environment"]]
|
27
|
+
Migrating to CreateNeetoJwtEngineOnetimeLinks (20250716075611)
|
28
|
+
[1m[36mTRANSACTION (0.2ms)[0m [1m[35mBEGIN[0m
|
29
|
+
[1m[35m (8.2ms)[0m [1m[35mCREATE TABLE "neeto_jwt_engine_onetime_links" ("id" uuid DEFAULT gen_random_uuid() NOT NULL PRIMARY KEY, "link" character varying NOT NULL, "expired" boolean DEFAULT FALSE NOT NULL, "configuration_id" uuid NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_f95784e1da"
|
30
|
+
FOREIGN KEY ("configuration_id")
|
31
|
+
REFERENCES "neeto_jwt_engine_configurations" ("id")
|
32
|
+
)[0m
|
33
|
+
[1m[35m (0.9ms)[0m [1m[35mCREATE UNIQUE INDEX "index_neeto_jwt_engine_onetime_links_on_link" ON "neeto_jwt_engine_onetime_links" ("link")[0m
|
34
|
+
[1m[35m (1.2ms)[0m [1m[35mCREATE INDEX "index_neeto_jwt_engine_onetime_links_on_configuration_id" ON "neeto_jwt_engine_onetime_links" ("configuration_id")[0m
|
35
|
+
[1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ('20250716075611') RETURNING "version"[0m
|
36
|
+
[1m[36mTRANSACTION (0.8ms)[0m [1m[35mCOMMIT[0m
|
37
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT pg_advisory_unlock(2004589700309690025)[0m
|
38
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
39
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.3ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
40
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
41
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
42
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT pg_try_advisory_lock(2004589700309690025)[0m
|
43
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.2ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
44
|
+
Migrating to CreateNeetoJwtEngineOnetimeLinks (20250716075611)
|
45
|
+
[1m[36mTRANSACTION (0.2ms)[0m [1m[35mBEGIN[0m
|
46
|
+
[1m[35m (4.0ms)[0m [1m[35mDROP TABLE "neeto_jwt_engine_onetime_links"[0m
|
47
|
+
[1m[36mActiveRecord::SchemaMigration Destroy (0.4ms)[0m [1m[31mDELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = '20250716075611'[0m
|
48
|
+
[1m[36mTRANSACTION (1.6ms)[0m [1m[35mCOMMIT[0m
|
49
|
+
[1m[35m (0.3ms)[0m [1m[34mSELECT pg_advisory_unlock(2004589700309690025)[0m
|
50
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
51
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT pg_try_advisory_lock(2004589700309690025)[0m
|
52
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.4ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
53
|
+
[1m[36mActiveRecord::InternalMetadata Load (1.3ms)[0m [1m[34mSELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1[0m [[nil, "environment"]]
|
54
|
+
Migrating to CreateNeetoJwtEngineOnetimeLinks (20250716075611)
|
55
|
+
[1m[36mTRANSACTION (0.2ms)[0m [1m[35mBEGIN[0m
|
56
|
+
[1m[35m (9.6ms)[0m [1m[35mCREATE TABLE "neeto_jwt_engine_onetime_links" ("id" uuid DEFAULT gen_random_uuid() NOT NULL PRIMARY KEY, "link" character varying NOT NULL, "expired" boolean DEFAULT FALSE NOT NULL, "configuration_id" uuid NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_f95784e1da"
|
57
|
+
FOREIGN KEY ("configuration_id")
|
58
|
+
REFERENCES "neeto_jwt_engine_configurations" ("id")
|
59
|
+
)[0m
|
60
|
+
[1m[35m (1.9ms)[0m [1m[35mCREATE UNIQUE INDEX "index_neeto_jwt_engine_onetime_links_on_link" ON "neeto_jwt_engine_onetime_links" ("link")[0m
|
61
|
+
[1m[35m (1.9ms)[0m [1m[35mCREATE INDEX "index_neeto_jwt_engine_onetime_links_on_configuration_id" ON "neeto_jwt_engine_onetime_links" ("configuration_id")[0m
|
62
|
+
[1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ('20250716075611') RETURNING "version"[0m
|
63
|
+
[1m[36mTRANSACTION (0.5ms)[0m [1m[35mCOMMIT[0m
|
64
|
+
[1m[35m (0.3ms)[0m [1m[34mSELECT pg_advisory_unlock(2004589700309690025)[0m
|
65
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.6ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
66
|
+
NeetoDataSync: Missing required configuration: AWS access key ID, AWS secret access key, Queue URL. The gem will be disabled.
|
67
|
+
NeetoDataSync: Missing required configuration: AWS access key ID, AWS secret access key, Queue URL. The gem will be disabled.
|
68
|
+
[1m[36mNeetoJwtEngine::OnetimeLink Load (2.9ms)[0m [1m[34mSELECT "neeto_jwt_engine_onetime_links".* FROM "neeto_jwt_engine_onetime_links" WHERE "neeto_jwt_engine_onetime_links"."expired" = $1 ORDER BY "neeto_jwt_engine_onetime_links"."id" ASC LIMIT $2[0m [["expired", false], ["LIMIT", 1]]
|
69
|
+
[1m[36mNeetoJwtEngine::OnetimeLink Load (0.4ms)[0m [1m[34mSELECT "neeto_jwt_engine_onetime_links".* FROM "neeto_jwt_engine_onetime_links" ORDER BY "neeto_jwt_engine_onetime_links"."id" ASC LIMIT $1[0m [["LIMIT", 1]]
|
70
|
+
[dotenv] Set [36mNEETO_JWT_X_TOKEN[0m
|
71
|
+
[dotenv] Loaded [33m.env[0m
|