Alexey Kim 1 год назад
Родитель
Сommit
61e65d7e40

+ 11 - 0
devops/docker-compose.yaml

@@ -23,6 +23,17 @@ services:
       - "3306:3306"
     restart: unless-stopped
 
+  gotrue:
+    container_name: gotrue
+    image: bitnami/gotrue:1.0.1
+    hostname: gotrue
+    env_file:
+      - gotrue.env
+    volumes:
+      - ./migrations:/usr/local/etc/gotrue/migrations
+    ports:
+      - "9999:9999"
+
   router:
     container_name: router
     image: ghcr.io/apollographql/router:v1.24.0

+ 11 - 0
devops/gotrue.env

@@ -0,0 +1,11 @@
+GOTRUE_JWT_SECRET="zDuMa2ASAs7gpdg3JpkyP6e8fi4T1idu"
+GOTRUE_JWT_EXP=3600
+GOTRUE_JWT_AUD=jwt.craft.beejay.kim
+GOTRUE_DB_DRIVER=mysql
+DATABASE_URL="beejay:964682@tcp(database:3306)/craft?parseTime=true&multiStatements=true"
+GOTRUE_API_HOST=
+PORT=9999
+GOTRUE_SITE_URL=
+GOTRUE_LOG_LEVEL=DEBUG
+GOTRUE_OPERATOR_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICAgInJvbGUiOiAibWFzdGVyIiwKICAgICJpc3MiOiAiY3JhZnQiLAogICAgImlhdCI6IDE2OTExNjEyMDAsCiAgICAiZXhwIjogMTg0OTAxNDAwMAp9.DaZyqWqRIcVlxoe3QNXmuoc44i3nMc_zLY4vJWuNEv0
+GOTRUE_DB_MIGRATIONS_PATH=/usr/local/etc/gotrue/migrations

+ 1 - 0
devops/migrations/20171026211738_create_users.down.sql

@@ -0,0 +1 @@
+DROP TABLE IF EXISTS `{{ index .Options "Namespace" }}users`;

+ 26 - 0
devops/migrations/20171026211738_create_users.up.sql

@@ -0,0 +1,26 @@
+CREATE TABLE IF NOT EXISTS `{{ index .Options "Namespace" }}users` (
+  `instance_id` varchar(255) DEFAULT NULL,
+  `id` varchar(255) NOT NULL,
+  `aud` varchar(255) DEFAULT NULL,
+  `role` varchar(255) DEFAULT NULL,
+  `email` varchar(255) DEFAULT NULL,
+  `encrypted_password` varchar(255) DEFAULT NULL,
+  `confirmed_at` timestamp NULL DEFAULT NULL,
+  `invited_at` timestamp NULL DEFAULT NULL,
+  `confirmation_token` varchar(255) DEFAULT NULL,
+  `confirmation_sent_at` timestamp NULL DEFAULT NULL,
+  `recovery_token` varchar(255) DEFAULT NULL,
+  `recovery_sent_at` timestamp NULL DEFAULT NULL,
+  `email_change_token` varchar(255) DEFAULT NULL,
+  `email_change` varchar(255) DEFAULT NULL,
+  `email_change_sent_at` timestamp NULL DEFAULT NULL,
+  `last_sign_in_at` timestamp NULL DEFAULT NULL,
+  `raw_app_meta_data` text DEFAULT NULL,
+  `raw_user_meta_data` text DEFAULT NULL,
+  `is_super_admin` tinyint(1) DEFAULT NULL,
+  `created_at` timestamp NULL DEFAULT NULL,
+  `updated_at` timestamp NULL DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `users_instance_id_idx` (`instance_id`),
+  KEY `users_instance_id_email_idx` (`instance_id`,`email`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 1 - 0
devops/migrations/20171026211808_create_instances.down.sql

@@ -0,0 +1 @@
+DROP TABLE IF EXISTS `{{ index .Options "Namespace" }}instances`;

+ 9 - 0
devops/migrations/20171026211808_create_instances.up.sql

@@ -0,0 +1,9 @@
+CREATE TABLE IF NOT EXISTS `{{ index .Options "Namespace" }}instances` (
+  `id` varchar(255) NOT NULL,
+  `uuid` varchar(255) DEFAULT NULL,
+  `raw_base_config` longtext,
+  `created_at` timestamp NULL DEFAULT NULL,
+  `updated_at` timestamp NULL DEFAULT NULL,
+  `deleted_at` timestamp NULL DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 1 - 0
devops/migrations/20171026211834_create_refresh_tokens.down.sql

@@ -0,0 +1 @@
+DROP TABLE IF EXISTS `{{ index .Options "Namespace" }}refresh_tokens`;

+ 12 - 0
devops/migrations/20171026211834_create_refresh_tokens.up.sql

@@ -0,0 +1,12 @@
+CREATE TABLE IF NOT EXISTS `{{ index .Options "Namespace" }}refresh_tokens` (
+  `instance_id` varchar(255) DEFAULT NULL,
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `token` varchar(255) DEFAULT NULL,
+  `user_id` varchar(255) DEFAULT NULL,
+  `revoked` tinyint(1) DEFAULT NULL,
+  `created_at` timestamp NULL DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `refresh_tokens_instance_id_idx` (`instance_id`),
+  KEY `refresh_tokens_instance_id_user_id_idx` (`instance_id`,`user_id`),
+  KEY `refresh_tokens_token_idx` (`token`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 3 - 0
devops/migrations/20180103212743_json_user_metadata.down.sql

@@ -0,0 +1,3 @@
+ALTER TABLE `{{ index .Options "Namespace" }}users` 
+CHANGE COLUMN `raw_app_meta_data` `raw_app_meta_data` text DEFAULT NULL ,
+CHANGE COLUMN `raw_user_meta_data` `raw_user_meta_data` text DEFAULT NULL ;

+ 8 - 0
devops/migrations/20180103212743_json_user_metadata.up.sql

@@ -0,0 +1,8 @@
+ALTER TABLE `{{ index .Options "Namespace" }}users` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+
+UPDATE `{{ index .Options "Namespace" }}users` SET `raw_app_meta_data` = '{}' WHERE `raw_app_meta_data` = '';
+UPDATE `{{ index .Options "Namespace" }}users` SET `raw_user_meta_data` = '{}' WHERE `raw_user_meta_data` = '';
+
+ALTER TABLE `{{ index .Options "Namespace" }}users` 
+CHANGE COLUMN `raw_app_meta_data` `raw_app_meta_data` JSON NULL DEFAULT NULL ,
+CHANGE COLUMN `raw_user_meta_data` `raw_user_meta_data` JSON NULL DEFAULT NULL ;

+ 1 - 0
devops/migrations/20180108183307_drop_instance_deleted_at.down.sql

@@ -0,0 +1 @@
+ALTER TABLE `{{ index .Options "Namespace" }}instances` ADD `deleted_at` timestamp NULL DEFAULT NULL AFTER `updated_at`;

+ 1 - 0
devops/migrations/20180108183307_drop_instance_deleted_at.up.sql

@@ -0,0 +1 @@
+ALTER TABLE `{{ index .Options "Namespace" }}instances` DROP `deleted_at`;

+ 1 - 0
devops/migrations/20180119214651_create_audit_log_entries.down.sql

@@ -0,0 +1 @@
+DROP TABLE IF EXISTS `{{ index .Options "Namespace" }}audit_log_entries`;

+ 8 - 0
devops/migrations/20180119214651_create_audit_log_entries.up.sql

@@ -0,0 +1,8 @@
+CREATE TABLE IF NOT EXISTS `{{ index .Options "Namespace" }}audit_log_entries` (
+  `instance_id` varchar(255) DEFAULT NULL,
+  `id` varchar(255) NOT NULL,
+  `payload` JSON NULL DEFAULT NULL,
+  `created_at` timestamp NULL DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `audit_logs_instance_id_idx` (`instance_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;

+ 1 - 0
devops/migrations/20180125194653_add_refresh_tokens_updated_at.down.sql

@@ -0,0 +1 @@
+ALTER TABLE `{{ index .Options "Namespace" }}refresh_tokens` DROP `updated_at`;

+ 2 - 0
devops/migrations/20180125194653_add_refresh_tokens_updated_at.up.sql

@@ -0,0 +1,2 @@
+ALTER TABLE `{{ index .Options "Namespace" }}refresh_tokens` ADD `updated_at` timestamp NULL DEFAULT NULL AFTER `created_at`;
+UPDATE `{{ index .Options "Namespace" }}refresh_tokens` SET `updated_at` = `created_at` WHERE `updated_at` IS NULL;

+ 131 - 0
devops/migrations/schema.sql

@@ -0,0 +1,131 @@
+-- MySQL dump 10.13  Distrib 5.7.19, for osx10.13 (x86_64)
+--
+-- Host: 127.0.0.1    Database: gotrue_development
+-- ------------------------------------------------------
+-- Server version	5.7.20
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `audit_log_entries`
+--
+
+DROP TABLE IF EXISTS `audit_log_entries`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `audit_log_entries` (
+  `instance_id` varchar(255) DEFAULT NULL,
+  `id` varchar(255) NOT NULL,
+  `payload` json DEFAULT NULL,
+  `created_at` timestamp NULL DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `audit_logs_instance_id_idx` (`instance_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `instances`
+--
+
+DROP TABLE IF EXISTS `instances`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `instances` (
+  `id` varchar(255) NOT NULL,
+  `uuid` varchar(255) DEFAULT NULL,
+  `raw_base_config` longtext,
+  `created_at` timestamp NULL DEFAULT NULL,
+  `updated_at` timestamp NULL DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `refresh_tokens`
+--
+
+DROP TABLE IF EXISTS `refresh_tokens`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `refresh_tokens` (
+  `instance_id` varchar(255) DEFAULT NULL,
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `token` varchar(255) DEFAULT NULL,
+  `user_id` varchar(255) DEFAULT NULL,
+  `revoked` tinyint(1) DEFAULT NULL,
+  `created_at` timestamp NULL DEFAULT NULL,
+  `updated_at` timestamp NULL DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `refresh_tokens_instance_id_idx` (`instance_id`),
+  KEY `refresh_tokens_instance_id_user_id_idx` (`instance_id`,`user_id`),
+  KEY `refresh_tokens_token_idx` (`token`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `schema_migration`
+--
+
+DROP TABLE IF EXISTS `schema_migration`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `schema_migration` (
+  `version` varchar(255) NOT NULL,
+  UNIQUE KEY `version_idx` (`version`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `users`
+--
+
+DROP TABLE IF EXISTS `users`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `users` (
+  `instance_id` varchar(255) DEFAULT NULL,
+  `id` varchar(255) NOT NULL,
+  `aud` varchar(255) DEFAULT NULL,
+  `role` varchar(255) DEFAULT NULL,
+  `email` varchar(255) DEFAULT NULL,
+  `encrypted_password` varchar(255) DEFAULT NULL,
+  `confirmed_at` timestamp NULL DEFAULT NULL,
+  `invited_at` timestamp NULL DEFAULT NULL,
+  `confirmation_token` varchar(255) DEFAULT NULL,
+  `confirmation_sent_at` timestamp NULL DEFAULT NULL,
+  `recovery_token` varchar(255) DEFAULT NULL,
+  `recovery_sent_at` timestamp NULL DEFAULT NULL,
+  `email_change_token` varchar(255) DEFAULT NULL,
+  `email_change` varchar(255) DEFAULT NULL,
+  `email_change_sent_at` timestamp NULL DEFAULT NULL,
+  `last_sign_in_at` timestamp NULL DEFAULT NULL,
+  `raw_app_meta_data` json DEFAULT NULL,
+  `raw_user_meta_data` json DEFAULT NULL,
+  `is_super_admin` tinyint(1) DEFAULT NULL,
+  `created_at` timestamp NULL DEFAULT NULL,
+  `updated_at` timestamp NULL DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `users_instance_id_idx` (`instance_id`),
+  KEY `users_instance_id_email_idx` (`instance_id`,`email`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2018-01-19 17:00:48