<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Integration\Setup; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\SchemaSetupInterface; use Magento\Framework\Setup\UpgradeSchemaInterface; /** * Class for integration tables schema upgrades */ class UpgradeSchema implements UpgradeSchemaInterface { /** * {@inheritdoc} */ public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context) { $setup->startSetup(); if (version_compare($context->getVersion(), '2.0.1', '<')) { /** * Create table 'oauth_token_request_log' */ $table = $setup->getConnection()->newTable( $setup->getTable('oauth_token_request_log') )->addColumn( 'log_id', \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, null, ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 'Log Id' )->addColumn( 'user_name', \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 255, ['nullable' => false], 'Customer email or admin login' )->addColumn( 'user_type', \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT, null, ['unsigned' => true, 'nullable' => false], 'User type (admin or customer)' )->addColumn( 'failures_count', \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT, null, ['unsigned' => true, 'nullable' => true, 'default' => 0], 'Number of failed authentication attempts in a row' )->addColumn( 'lock_expires_at', \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP, null, ['nullable' => false], 'Lock expiration time' )->addIndex( $setup->getIdxName( 'oauth_token_request_log', ['user_name', 'user_type'], \Magento\Framework\DB\Adapter\AdapterInterface::INDEX_TYPE_UNIQUE ), ['user_name', 'user_type'], ['type' => \Magento\Framework\DB\Adapter\AdapterInterface::INDEX_TYPE_UNIQUE] )->setComment( 'Log of token request authentication failures.' ); $setup->getConnection()->createTable($table); } $setup->endSetup(); } }