cnfs-cognito 0.0.1.alpha1
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/MIT-LICENSE +20 -0
- data/README.md +28 -0
- data/Rakefile +24 -0
- data/app/controllers/chown_requests_controller.rb +4 -0
- data/app/controllers/chown_results_controller.rb +4 -0
- data/app/controllers/cognito/application_controller.rb +6 -0
- data/app/controllers/endpoints_controller.rb +4 -0
- data/app/controllers/identifiers_controller.rb +4 -0
- data/app/controllers/login_controller.rb +45 -0
- data/app/controllers/metabase_cards_controller.rb +4 -0
- data/app/controllers/metabase_token_controller.rb +46 -0
- data/app/controllers/pools_controller.rb +21 -0
- data/app/controllers/users_controller.rb +4 -0
- data/app/models/chown_request.rb +13 -0
- data/app/models/chown_result.rb +14 -0
- data/app/models/cognito/application_record.rb +7 -0
- data/app/models/endpoint.rb +6 -0
- data/app/models/identifier.rb +5 -0
- data/app/models/metabase_card.rb +6 -0
- data/app/models/platform_event_consumer.rb +8 -0
- data/app/models/pool.rb +6 -0
- data/app/models/tenant.rb +5 -0
- data/app/models/user.rb +50 -0
- data/app/models/user_pool.rb +6 -0
- data/app/operations/chown_request_process.rb +27 -0
- data/app/operations/pool_create.rb +65 -0
- data/app/operations/segments/age.rb +65 -0
- data/app/operations/segments/birthday.rb +49 -0
- data/app/operations/segments/except_ids.rb +28 -0
- data/app/operations/segments/gender.rb +35 -0
- data/app/operations/segments_apply.rb +40 -0
- data/app/policies/chown_request_policy.rb +4 -0
- data/app/policies/chown_result_policy.rb +4 -0
- data/app/policies/cognito/application_policy.rb +6 -0
- data/app/policies/endpoint_policy.rb +4 -0
- data/app/policies/identifier_policy.rb +4 -0
- data/app/policies/metabase_card_policy.rb +4 -0
- data/app/policies/pool_policy.rb +4 -0
- data/app/policies/tenant_policy.rb +5 -0
- data/app/policies/user_policy.rb +20 -0
- data/app/resources/chown_request_resource.rb +5 -0
- data/app/resources/chown_result_resource.rb +8 -0
- data/app/resources/cognito/application_resource.rb +7 -0
- data/app/resources/endpoint_resource.rb +49 -0
- data/app/resources/identifier_resource.rb +6 -0
- data/app/resources/metabase_card_resource.rb +5 -0
- data/app/resources/pool_resource.rb +30 -0
- data/app/resources/user_resource.rb +27 -0
- data/app/services/metabase/config.rb +16 -0
- data/app/services/metabase/token_generator.rb +36 -0
- data/config/environment.rb +0 -0
- data/config/routes.rb +14 -0
- data/config/sidekiq.yml +3 -0
- data/config/spring.rb +3 -0
- data/db/migrate/20190310013542_create_endpoints.rb +13 -0
- data/db/migrate/20190317072927_create_pools.rb +12 -0
- data/db/migrate/20190317073055_create_users.rb +18 -0
- data/db/migrate/20190317073139_create_identifiers.rb +14 -0
- data/db/migrate/20190317073328_create_user_pools.rb +12 -0
- data/db/migrate/20191105100356_create_chown_requests.rb +9 -0
- data/db/migrate/20191106023315_create_chown_results.rb +12 -0
- data/db/migrate/20191126011832_create_metabase_cards.rb +11 -0
- data/db/migrate/20191129055605_add_birthday_to_user.rb +5 -0
- data/db/migrate/20191205023159_add_gender_to_user.rb +5 -0
- data/db/migrate/20191210050613_add_system_generated_flag_to_pools.rb +5 -0
- data/db/seeds/development/data.seeds.rb +0 -0
- data/db/seeds/development/tenants.seeds.rb +7 -0
- data/db/seeds/development/users.seeds.rb +29 -0
- data/lib/ros/cognito.rb +16 -0
- data/lib/ros/cognito/engine.rb +53 -0
- data/lib/ros/cognito/version.rb +7 -0
- data/lib/tasks/ros/cognito_tasks.rake +16 -0
- metadata +162 -0
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Metabase
         | 
| 4 | 
            +
              class Config
         | 
| 5 | 
            +
                include ActiveModel::Model
         | 
| 6 | 
            +
                include ActiveModel::Attributes
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                attribute :sign_algorithm, :string, default: 'HS256'
         | 
| 9 | 
            +
                attribute :default_expiry, :integer, default: 86_400
         | 
| 10 | 
            +
                attribute :minimum_expiry, :integer, default: 3_600
         | 
| 11 | 
            +
                attribute :maximum_expiry, :integer, default: 2_592_000
         | 
| 12 | 
            +
                attribute :secret, :string
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                validates :secret, presence: { message: 'Metabase secret is misconfigured or missing' }
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
            end
         | 
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'jwt'
         | 
| 4 | 
            +
            module Metabase
         | 
| 5 | 
            +
              class TokenGenerator
         | 
| 6 | 
            +
                include ActiveModel::Model
         | 
| 7 | 
            +
                delegate :minimum_expiry, :maximum_expiry, to: :config
         | 
| 8 | 
            +
                attr_reader :exp, :payload, :config
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                validate :config_validation!
         | 
| 11 | 
            +
                validates :payload, presence: true
         | 
| 12 | 
            +
                validates :exp, numericality: {
         | 
| 13 | 
            +
                  less_than_or_equal_to: :maximum_expiry,
         | 
| 14 | 
            +
                  greater_than_or_equal_to: :minimum_expiry
         | 
| 15 | 
            +
                }, allow_blank: true
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                def initialize(payload:, expiry:)
         | 
| 18 | 
            +
                  @config = Metabase::Config.new(secret: Settings.metabase.encryption_key)
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  @exp = expiry || config.default_expiry
         | 
| 21 | 
            +
                  @payload = payload.merge(iat: Time.now.to_i, exp: Time.now.to_i + exp)
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                def token
         | 
| 25 | 
            +
                  return unless valid?
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                  @token ||= JWT.encode payload, config.secret, config.sign_algorithm
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                private
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                def config_validation!
         | 
| 33 | 
            +
                  errors.add(:config, config.errors.messages) unless config.valid?
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
            end
         | 
| 
            File without changes
         | 
    
        data/config/routes.rb
    ADDED
    
    | @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Ros::Cognito::Engine.routes.draw do
         | 
| 4 | 
            +
              jsonapi_resources :metabase_cards
         | 
| 5 | 
            +
              jsonapi_resources :chown_results
         | 
| 6 | 
            +
              jsonapi_resources :chown_requests, only: [:create]
         | 
| 7 | 
            +
              jsonapi_resources :identifiers
         | 
| 8 | 
            +
              jsonapi_resources :users
         | 
| 9 | 
            +
              jsonapi_resources :pools
         | 
| 10 | 
            +
              jsonapi_resources :endpoints
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              resources :metabase_token, only: [:show]
         | 
| 13 | 
            +
              post 'login', to: 'login#create'
         | 
| 14 | 
            +
            end
         | 
    
        data/config/sidekiq.yml
    ADDED
    
    
    
        data/config/spring.rb
    ADDED
    
    
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class CreateEndpoints < ActiveRecord::Migration[6.0]
         | 
| 4 | 
            +
              def change
         | 
| 5 | 
            +
                create_table :endpoints do |t|
         | 
| 6 | 
            +
                  t.string :url, null: false, index: { unique: true }
         | 
| 7 | 
            +
                  t.references :target, polymorphic: true
         | 
| 8 | 
            +
                  t.jsonb :properties
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  t.timestamps
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class CreateUsers < ActiveRecord::Migration[6.0]
         | 
| 4 | 
            +
              def change
         | 
| 5 | 
            +
                create_table :users do |t|
         | 
| 6 | 
            +
                  t.string :primary_identifier, index: { unique: true }
         | 
| 7 | 
            +
                  t.string :title
         | 
| 8 | 
            +
                  t.string :first_name
         | 
| 9 | 
            +
                  t.string :last_name
         | 
| 10 | 
            +
                  t.string :phone_number
         | 
| 11 | 
            +
                  t.string :email_address
         | 
| 12 | 
            +
                  t.boolean :anonymous, default: false
         | 
| 13 | 
            +
                  t.jsonb :properties
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  t.timestamps
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class CreateIdentifiers < ActiveRecord::Migration[6.0]
         | 
| 4 | 
            +
              def change
         | 
| 5 | 
            +
                create_table :identifiers do |t|
         | 
| 6 | 
            +
                  t.string :name
         | 
| 7 | 
            +
                  t.string :value
         | 
| 8 | 
            +
                  t.references :user, foreign_key: true
         | 
| 9 | 
            +
                  t.jsonb :properties
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  t.timestamps
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
            end
         | 
| 
            File without changes
         | 
| @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            after 'development:tenants' do
         | 
| 4 | 
            +
              Tenant.all.each do |tenant|
         | 
| 5 | 
            +
                next if tenant.id.eql? 1
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                tenant.switch do
         | 
| 8 | 
            +
                  # Endpoint.create(url: "http://tenant#{tenant.id}.com/hello", target_type: 'Survey::Group', target_id: 1)
         | 
| 9 | 
            +
                  # Endpoint.create(url: 'http://i.pxln.io/59dcb', target_type: 'Survey::Campaign', target_id: 1)
         | 
| 10 | 
            +
                  # User.reset
         | 
| 11 | 
            +
                  # file_name = 'cognito_pools.csv'
         | 
| 12 | 
            +
                  # User.load_csv(file_name)
         | 
| 13 | 
            +
                  Pool.create(name: 'Developers').tap do |pool|
         | 
| 14 | 
            +
                    pool.users.create(primary_identifier: 'developer', title: 'Mr', last_name: 'Developer',
         | 
| 15 | 
            +
                                      phone_number: '+15855551212')
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
                  Pool.create(name: 'Gold Tier').tap do |pool|
         | 
| 18 | 
            +
                    pool.users.create(primary_identifier: 'jones', title: 'Mr', last_name: 'Jones', phone_number: '+1388200363')
         | 
| 19 | 
            +
                    pool.users.create(primary_identifier: 'miller', title: 'Mrs', last_name: 'Miller', phone_number: '+1396537757')
         | 
| 20 | 
            +
                    pool.users.create(primary_identifier: 'doe', title: 'Miss', last_name: 'Doe', phone_number: '+1382800710')
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                  Pool.create(name: 'Silver Tier').tap do |pool|
         | 
| 23 | 
            +
                    pool.users.create(primary_identifier: SecureRandom.uuid, title: 'Ms', last_name: 'Shelly', phone_number: '')
         | 
| 24 | 
            +
                    pool.users.create(primary_identifier: SecureRandom.uuid, title: 'Mr', last_name: 'Homes', phone_number: '')
         | 
| 25 | 
            +
                    pool.users.create(primary_identifier: SecureRandom.uuid, title: 'Mr', last_name: 'Lucas', phone_number: '')
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
            end
         | 
    
        data/lib/ros/cognito.rb
    ADDED
    
    
| @@ -0,0 +1,53 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Ros
         | 
| 4 | 
            +
              module Cognito
         | 
| 5 | 
            +
                class Engine < ::Rails::Engine
         | 
| 6 | 
            +
                  config.generators.api_only = true
         | 
| 7 | 
            +
                  config.generators do |g|
         | 
| 8 | 
            +
                    g.test_framework :rspec, fixture: true
         | 
| 9 | 
            +
                    g.fixture_replacement :factory_bot, dir: 'spec/factories'
         | 
| 10 | 
            +
                  end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  initializer 'service.set_platform_config', before: 'ros_core.load_platform_config' do |_app|
         | 
| 13 | 
            +
                    settings_path = root.join('config/settings.yml')
         | 
| 14 | 
            +
                    Settings.prepend_source!(settings_path) if File.exist? settings_path
         | 
| 15 | 
            +
                    name = self.class.module_parent.name.demodulize.underscore
         | 
| 16 | 
            +
                    Settings.prepend_source!(service: { name: name, policy_name: name.capitalize })
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  # Adds this gem's db/migrations path to the enclosing application's migraations_path array
         | 
| 20 | 
            +
                  # if the gem has been included in an application, i.e. it is not running in the dummy app
         | 
| 21 | 
            +
                  # https://github.com/rails/rails/issues/22261
         | 
| 22 | 
            +
                  initializer 'service.configure_migrations' do |app|
         | 
| 23 | 
            +
                    unless app.config.paths['db/migrate'].first.include? 'spec/dummy'
         | 
| 24 | 
            +
                      config.paths['db/migrate'].expanded.each do |expanded_path|
         | 
| 25 | 
            +
                        app.config.paths['db/migrate'] << expanded_path
         | 
| 26 | 
            +
                        ActiveRecord::Migrator.migrations_paths << expanded_path
         | 
| 27 | 
            +
                      end
         | 
| 28 | 
            +
                    end
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                  initializer 'service.set_factory_paths', after: 'ros_core.set_factory_paths' do
         | 
| 32 | 
            +
                    if defined?(FactoryBot) && !Rails.env.production?
         | 
| 33 | 
            +
                      FactoryBot.definition_file_paths.prepend(Pathname.new(__FILE__).join('../../../../spec/factories'))
         | 
| 34 | 
            +
                    end
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  initializer 'service.configure_event_logging' do |_app|
         | 
| 38 | 
            +
                    if Settings.dig(:event_logging, :enabled)
         | 
| 39 | 
            +
                      Settings.event_logging.config.schemas_path = root.join(Settings.event_logging.config.schemas_path)
         | 
| 40 | 
            +
                    end
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                  # initializer 'service.initialize_infra_services', after: 'ros_core.initialize_infra_services' do |app|
         | 
| 44 | 
            +
                  # end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                  # initializer 'service.configure_console_methods', before: 'ros_core.configure_console_methods' do |_app|
         | 
| 47 | 
            +
                  #   if Rails.env.development? && !Rails.const_defined?('Server')
         | 
| 48 | 
            +
                  #     require_relative 'console'
         | 
| 49 | 
            +
                  #   end
         | 
| 50 | 
            +
                  # end
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
              end
         | 
| 53 | 
            +
            end
         | 
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            namespace :ros do
         | 
| 4 | 
            +
              namespace :cognito do
         | 
| 5 | 
            +
                namespace :db do
         | 
| 6 | 
            +
                  desc 'Load engine seeds'
         | 
| 7 | 
            +
                  task :seed do
         | 
| 8 | 
            +
                    seedbank_root = Seedbank.seeds_root
         | 
| 9 | 
            +
                    Seedbank.seeds_root = File.expand_path('db/seeds', Ros::Cognito::Engine.root)
         | 
| 10 | 
            +
                    Seedbank.load_tasks
         | 
| 11 | 
            +
                    Rake::Task['db:seed'].invoke
         | 
| 12 | 
            +
                    Seedbank.seeds_root = seedbank_root
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,162 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: cnfs-cognito
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.0.1.alpha1
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - Robert Roach
         | 
| 8 | 
            +
            - Rui Baltazar
         | 
| 9 | 
            +
            autorequire: 
         | 
| 10 | 
            +
            bindir: bin
         | 
| 11 | 
            +
            cert_chain: []
         | 
| 12 | 
            +
            date: 2020-01-23 00:00:00.000000000 Z
         | 
| 13 | 
            +
            dependencies:
         | 
| 14 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 15 | 
            +
              name: rails
         | 
| 16 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            +
                requirements:
         | 
| 18 | 
            +
                - - "~>"
         | 
| 19 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 20 | 
            +
                    version: 6.0.2.1
         | 
| 21 | 
            +
              type: :runtime
         | 
| 22 | 
            +
              prerelease: false
         | 
| 23 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 24 | 
            +
                requirements:
         | 
| 25 | 
            +
                - - "~>"
         | 
| 26 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 27 | 
            +
                    version: 6.0.2.1
         | 
| 28 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 29 | 
            +
              name: cnfs-core
         | 
| 30 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 31 | 
            +
                requirements:
         | 
| 32 | 
            +
                - - '='
         | 
| 33 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 34 | 
            +
                    version: 0.0.1alpha
         | 
| 35 | 
            +
              type: :runtime
         | 
| 36 | 
            +
              prerelease: false
         | 
| 37 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 38 | 
            +
                requirements:
         | 
| 39 | 
            +
                - - '='
         | 
| 40 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 41 | 
            +
                    version: 0.0.1alpha
         | 
| 42 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 43 | 
            +
              name: cnfs_sdk
         | 
| 44 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 45 | 
            +
                requirements:
         | 
| 46 | 
            +
                - - '='
         | 
| 47 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 48 | 
            +
                    version: 0.0.1alpha
         | 
| 49 | 
            +
              type: :runtime
         | 
| 50 | 
            +
              prerelease: false
         | 
| 51 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 52 | 
            +
                requirements:
         | 
| 53 | 
            +
                - - '='
         | 
| 54 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 55 | 
            +
                    version: 0.0.1alpha
         | 
| 56 | 
            +
            description: ": Description of Ros::Cognito."
         | 
| 57 | 
            +
            email:
         | 
| 58 | 
            +
            - rjayroach@gmail.com
         | 
| 59 | 
            +
            - rui.p.baltazar@gmail.com
         | 
| 60 | 
            +
            executables: []
         | 
| 61 | 
            +
            extensions: []
         | 
| 62 | 
            +
            extra_rdoc_files: []
         | 
| 63 | 
            +
            files:
         | 
| 64 | 
            +
            - MIT-LICENSE
         | 
| 65 | 
            +
            - README.md
         | 
| 66 | 
            +
            - Rakefile
         | 
| 67 | 
            +
            - app/controllers/chown_requests_controller.rb
         | 
| 68 | 
            +
            - app/controllers/chown_results_controller.rb
         | 
| 69 | 
            +
            - app/controllers/cognito/application_controller.rb
         | 
| 70 | 
            +
            - app/controllers/endpoints_controller.rb
         | 
| 71 | 
            +
            - app/controllers/identifiers_controller.rb
         | 
| 72 | 
            +
            - app/controllers/login_controller.rb
         | 
| 73 | 
            +
            - app/controllers/metabase_cards_controller.rb
         | 
| 74 | 
            +
            - app/controllers/metabase_token_controller.rb
         | 
| 75 | 
            +
            - app/controllers/pools_controller.rb
         | 
| 76 | 
            +
            - app/controllers/users_controller.rb
         | 
| 77 | 
            +
            - app/models/chown_request.rb
         | 
| 78 | 
            +
            - app/models/chown_result.rb
         | 
| 79 | 
            +
            - app/models/cognito/application_record.rb
         | 
| 80 | 
            +
            - app/models/endpoint.rb
         | 
| 81 | 
            +
            - app/models/identifier.rb
         | 
| 82 | 
            +
            - app/models/metabase_card.rb
         | 
| 83 | 
            +
            - app/models/platform_event_consumer.rb
         | 
| 84 | 
            +
            - app/models/pool.rb
         | 
| 85 | 
            +
            - app/models/tenant.rb
         | 
| 86 | 
            +
            - app/models/user.rb
         | 
| 87 | 
            +
            - app/models/user_pool.rb
         | 
| 88 | 
            +
            - app/operations/chown_request_process.rb
         | 
| 89 | 
            +
            - app/operations/pool_create.rb
         | 
| 90 | 
            +
            - app/operations/segments/age.rb
         | 
| 91 | 
            +
            - app/operations/segments/birthday.rb
         | 
| 92 | 
            +
            - app/operations/segments/except_ids.rb
         | 
| 93 | 
            +
            - app/operations/segments/gender.rb
         | 
| 94 | 
            +
            - app/operations/segments_apply.rb
         | 
| 95 | 
            +
            - app/policies/chown_request_policy.rb
         | 
| 96 | 
            +
            - app/policies/chown_result_policy.rb
         | 
| 97 | 
            +
            - app/policies/cognito/application_policy.rb
         | 
| 98 | 
            +
            - app/policies/endpoint_policy.rb
         | 
| 99 | 
            +
            - app/policies/identifier_policy.rb
         | 
| 100 | 
            +
            - app/policies/metabase_card_policy.rb
         | 
| 101 | 
            +
            - app/policies/pool_policy.rb
         | 
| 102 | 
            +
            - app/policies/tenant_policy.rb
         | 
| 103 | 
            +
            - app/policies/user_policy.rb
         | 
| 104 | 
            +
            - app/resources/chown_request_resource.rb
         | 
| 105 | 
            +
            - app/resources/chown_result_resource.rb
         | 
| 106 | 
            +
            - app/resources/cognito/application_resource.rb
         | 
| 107 | 
            +
            - app/resources/endpoint_resource.rb
         | 
| 108 | 
            +
            - app/resources/identifier_resource.rb
         | 
| 109 | 
            +
            - app/resources/metabase_card_resource.rb
         | 
| 110 | 
            +
            - app/resources/pool_resource.rb
         | 
| 111 | 
            +
            - app/resources/user_resource.rb
         | 
| 112 | 
            +
            - app/services/metabase/config.rb
         | 
| 113 | 
            +
            - app/services/metabase/token_generator.rb
         | 
| 114 | 
            +
            - config/environment.rb
         | 
| 115 | 
            +
            - config/routes.rb
         | 
| 116 | 
            +
            - config/sidekiq.yml
         | 
| 117 | 
            +
            - config/spring.rb
         | 
| 118 | 
            +
            - db/migrate/20190310013542_create_endpoints.rb
         | 
| 119 | 
            +
            - db/migrate/20190317072927_create_pools.rb
         | 
| 120 | 
            +
            - db/migrate/20190317073055_create_users.rb
         | 
| 121 | 
            +
            - db/migrate/20190317073139_create_identifiers.rb
         | 
| 122 | 
            +
            - db/migrate/20190317073328_create_user_pools.rb
         | 
| 123 | 
            +
            - db/migrate/20191105100356_create_chown_requests.rb
         | 
| 124 | 
            +
            - db/migrate/20191106023315_create_chown_results.rb
         | 
| 125 | 
            +
            - db/migrate/20191126011832_create_metabase_cards.rb
         | 
| 126 | 
            +
            - db/migrate/20191129055605_add_birthday_to_user.rb
         | 
| 127 | 
            +
            - db/migrate/20191205023159_add_gender_to_user.rb
         | 
| 128 | 
            +
            - db/migrate/20191210050613_add_system_generated_flag_to_pools.rb
         | 
| 129 | 
            +
            - db/seeds/development/data.seeds.rb
         | 
| 130 | 
            +
            - db/seeds/development/tenants.seeds.rb
         | 
| 131 | 
            +
            - db/seeds/development/users.seeds.rb
         | 
| 132 | 
            +
            - lib/ros/cognito.rb
         | 
| 133 | 
            +
            - lib/ros/cognito/engine.rb
         | 
| 134 | 
            +
            - lib/ros/cognito/version.rb
         | 
| 135 | 
            +
            - lib/tasks/ros/cognito_tasks.rake
         | 
| 136 | 
            +
            homepage: http://guides.rails-on-services.org/
         | 
| 137 | 
            +
            licenses:
         | 
| 138 | 
            +
            - MIT
         | 
| 139 | 
            +
            metadata: {}
         | 
| 140 | 
            +
            post_install_message: 
         | 
| 141 | 
            +
            rdoc_options: []
         | 
| 142 | 
            +
            require_paths:
         | 
| 143 | 
            +
            - lib
         | 
| 144 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 145 | 
            +
              requirements:
         | 
| 146 | 
            +
              - - ">"
         | 
| 147 | 
            +
                - !ruby/object:Gem::Version
         | 
| 148 | 
            +
                  version: 2.6.0
         | 
| 149 | 
            +
              - - "<"
         | 
| 150 | 
            +
                - !ruby/object:Gem::Version
         | 
| 151 | 
            +
                  version: '2.7'
         | 
| 152 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 153 | 
            +
              requirements:
         | 
| 154 | 
            +
              - - ">"
         | 
| 155 | 
            +
                - !ruby/object:Gem::Version
         | 
| 156 | 
            +
                  version: 1.3.1
         | 
| 157 | 
            +
            requirements: []
         | 
| 158 | 
            +
            rubygems_version: 3.0.3
         | 
| 159 | 
            +
            signing_key: 
         | 
| 160 | 
            +
            specification_version: 4
         | 
| 161 | 
            +
            summary: ": Summary of Ros::Cognito."
         | 
| 162 | 
            +
            test_files: []
         |