tempest.games 0.1.2 → 0.1.4

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.
@@ -0,0 +1,33 @@
1
+ CREATE TABLE IF NOT EXISTS "games" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL
3
+ );
4
+ --> statement-breakpoint
5
+ CREATE TABLE IF NOT EXISTS "players" (
6
+ "user_id" uuid NOT NULL,
7
+ "game_id" uuid NOT NULL,
8
+ "score" integer NOT NULL,
9
+ CONSTRAINT "players_user_id_game_id_pk" PRIMARY KEY("user_id","game_id")
10
+ );
11
+ --> statement-breakpoint
12
+ CREATE TABLE IF NOT EXISTS "users" (
13
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
14
+ "username" varchar(255) NOT NULL,
15
+ "email" varchar(255) NOT NULL,
16
+ "hash" varchar(255) NOT NULL,
17
+ "salt" varchar(255) NOT NULL
18
+ );
19
+ --> statement-breakpoint
20
+ DO $$ BEGIN
21
+ ALTER TABLE "players" ADD CONSTRAINT "players_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;
22
+ EXCEPTION
23
+ WHEN duplicate_object THEN null;
24
+ END $$;
25
+ --> statement-breakpoint
26
+ DO $$ BEGIN
27
+ ALTER TABLE "players" ADD CONSTRAINT "players_game_id_games_id_fk" FOREIGN KEY ("game_id") REFERENCES "public"."games"("id") ON DELETE no action ON UPDATE no action;
28
+ EXCEPTION
29
+ WHEN duplicate_object THEN null;
30
+ END $$;
31
+ --> statement-breakpoint
32
+ CREATE UNIQUE INDEX IF NOT EXISTS "users_username_unique" ON "users" USING btree ("username");--> statement-breakpoint
33
+ CREATE UNIQUE INDEX IF NOT EXISTS "users_email_unique" ON "users" USING btree ("email");
@@ -0,0 +1,101 @@
1
+ DO $$ BEGIN
2
+ CREATE TYPE "public"."role" AS ENUM('admin', 'user');
3
+ EXCEPTION
4
+ WHEN duplicate_object THEN null;
5
+ END $$;
6
+ --> statement-breakpoint
7
+ DO $$ BEGIN
8
+ CREATE TYPE "public"."tracked_user_columnName" AS ENUM('username', 'email', 'hash', 'userRole');
9
+ EXCEPTION
10
+ WHEN duplicate_object THEN null;
11
+ END $$;
12
+ --> statement-breakpoint
13
+ DO $$ BEGIN
14
+ CREATE TYPE "public"."two_factor_method" AS ENUM('email', 'phone');
15
+ EXCEPTION
16
+ WHEN duplicate_object THEN null;
17
+ END $$;
18
+ --> statement-breakpoint
19
+ CREATE TABLE IF NOT EXISTS "banished_ips" (
20
+ "ip" varchar(45) NOT NULL,
21
+ "reason" varchar(2048) NOT NULL,
22
+ "banishedAt" timestamp DEFAULT now() NOT NULL,
23
+ "banishedUntil" timestamp NOT NULL
24
+ );
25
+ --> statement-breakpoint
26
+ CREATE TABLE IF NOT EXISTS "login_history" (
27
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
28
+ "userId" uuid NOT NULL,
29
+ "loginTime" timestamp DEFAULT now() NOT NULL,
30
+ "ipAddress" varchar(45) NOT NULL,
31
+ "userAgent" varchar(1024),
32
+ "geoLocation" varchar(255),
33
+ "successful" boolean DEFAULT true NOT NULL
34
+ );
35
+ --> statement-breakpoint
36
+ CREATE TABLE IF NOT EXISTS "password_reset_attempts" (
37
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
38
+ "userId" uuid NOT NULL,
39
+ "requestedIp" varchar(45) NOT NULL,
40
+ "requestedAt" timestamp DEFAULT now() NOT NULL,
41
+ "succeededIp" varchar(45),
42
+ "succeededAt" timestamp,
43
+ "verificationMethod" "two_factor_method" NOT NULL
44
+ );
45
+ --> statement-breakpoint
46
+ CREATE TABLE IF NOT EXISTS "user_changes" (
47
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
48
+ "userId" uuid NOT NULL,
49
+ "changedAt" timestamp DEFAULT now() NOT NULL,
50
+ "changedIp" varchar(45) NOT NULL,
51
+ "changedColumn" "tracked_user_columnName" NOT NULL,
52
+ "oldValue" varchar(255),
53
+ "newValue" varchar(255)
54
+ );
55
+ --> statement-breakpoint
56
+ ALTER TABLE "players" RENAME COLUMN "user_id" TO "userId";--> statement-breakpoint
57
+ ALTER TABLE "players" RENAME COLUMN "game_id" TO "gameId";--> statement-breakpoint
58
+ ALTER TABLE "players" DROP CONSTRAINT "players_user_id_users_id_fk";
59
+ --> statement-breakpoint
60
+ ALTER TABLE "players" DROP CONSTRAINT "players_game_id_games_id_fk";
61
+ --> statement-breakpoint
62
+ ALTER TABLE "players" DROP CONSTRAINT "players_user_id_game_id_pk";--> statement-breakpoint
63
+ ALTER TABLE "users" ALTER COLUMN "username" SET DATA TYPE varchar(16);--> statement-breakpoint
64
+ ALTER TABLE "users" ALTER COLUMN "email" SET DATA TYPE varchar(254);--> statement-breakpoint
65
+ ALTER TABLE "users" ALTER COLUMN "hash" SET DATA TYPE varchar(64);--> statement-breakpoint
66
+ ALTER TABLE "users" ALTER COLUMN "salt" SET DATA TYPE varchar(36);--> statement-breakpoint
67
+ ALTER TABLE "players" ADD CONSTRAINT "players_userId_gameId_pk" PRIMARY KEY("userId","gameId");--> statement-breakpoint
68
+ ALTER TABLE "users" ADD COLUMN "createdAt" timestamp DEFAULT now() NOT NULL;--> statement-breakpoint
69
+ ALTER TABLE "users" ADD COLUMN "createdIp" varchar(45);--> statement-breakpoint
70
+ ALTER TABLE "users" ADD COLUMN "isActive" boolean DEFAULT true NOT NULL;--> statement-breakpoint
71
+ ALTER TABLE "users" ADD COLUMN "verifiedAt" timestamp;--> statement-breakpoint
72
+ ALTER TABLE "users" ADD COLUMN "userRole" "role" DEFAULT 'user';--> statement-breakpoint
73
+ DO $$ BEGIN
74
+ ALTER TABLE "login_history" ADD CONSTRAINT "login_history_userId_users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;
75
+ EXCEPTION
76
+ WHEN duplicate_object THEN null;
77
+ END $$;
78
+ --> statement-breakpoint
79
+ DO $$ BEGIN
80
+ ALTER TABLE "password_reset_attempts" ADD CONSTRAINT "password_reset_attempts_userId_users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;
81
+ EXCEPTION
82
+ WHEN duplicate_object THEN null;
83
+ END $$;
84
+ --> statement-breakpoint
85
+ DO $$ BEGIN
86
+ ALTER TABLE "user_changes" ADD CONSTRAINT "user_changes_userId_users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;
87
+ EXCEPTION
88
+ WHEN duplicate_object THEN null;
89
+ END $$;
90
+ --> statement-breakpoint
91
+ DO $$ BEGIN
92
+ ALTER TABLE "players" ADD CONSTRAINT "players_userId_users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;
93
+ EXCEPTION
94
+ WHEN duplicate_object THEN null;
95
+ END $$;
96
+ --> statement-breakpoint
97
+ DO $$ BEGIN
98
+ ALTER TABLE "players" ADD CONSTRAINT "players_gameId_games_id_fk" FOREIGN KEY ("gameId") REFERENCES "public"."games"("id") ON DELETE no action ON UPDATE no action;
99
+ EXCEPTION
100
+ WHEN duplicate_object THEN null;
101
+ END $$;
@@ -0,0 +1,33 @@
1
+ ALTER TABLE "banished_ips" RENAME TO "banishedIps";--> statement-breakpoint
2
+ ALTER TABLE "login_history" RENAME TO "loginHistory";--> statement-breakpoint
3
+ ALTER TABLE "password_reset_attempts" RENAME TO "passwordResetAttempts";--> statement-breakpoint
4
+ ALTER TABLE "user_changes" RENAME TO "userChanges";--> statement-breakpoint
5
+ ALTER TABLE "loginHistory" DROP CONSTRAINT "login_history_userId_users_id_fk";
6
+ --> statement-breakpoint
7
+ ALTER TABLE "passwordResetAttempts" DROP CONSTRAINT "password_reset_attempts_userId_users_id_fk";
8
+ --> statement-breakpoint
9
+ ALTER TABLE "userChanges" DROP CONSTRAINT "user_changes_userId_users_id_fk";
10
+ --> statement-breakpoint
11
+ DROP INDEX IF EXISTS "users_username_unique";--> statement-breakpoint
12
+ DROP INDEX IF EXISTS "users_email_unique";--> statement-breakpoint
13
+ ALTER TABLE "banishedIps" ALTER COLUMN "banishedUntil" DROP NOT NULL;--> statement-breakpoint
14
+ DO $$ BEGIN
15
+ ALTER TABLE "loginHistory" ADD CONSTRAINT "loginHistory_userId_users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;
16
+ EXCEPTION
17
+ WHEN duplicate_object THEN null;
18
+ END $$;
19
+ --> statement-breakpoint
20
+ DO $$ BEGIN
21
+ ALTER TABLE "passwordResetAttempts" ADD CONSTRAINT "passwordResetAttempts_userId_users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;
22
+ EXCEPTION
23
+ WHEN duplicate_object THEN null;
24
+ END $$;
25
+ --> statement-breakpoint
26
+ DO $$ BEGIN
27
+ ALTER TABLE "userChanges" ADD CONSTRAINT "userChanges_userId_users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;
28
+ EXCEPTION
29
+ WHEN duplicate_object THEN null;
30
+ END $$;
31
+ --> statement-breakpoint
32
+ CREATE UNIQUE INDEX IF NOT EXISTS "users_username_index" ON "users" USING btree ("username");--> statement-breakpoint
33
+ CREATE UNIQUE INDEX IF NOT EXISTS "users_email_index" ON "users" USING btree ("email");
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "users" ALTER COLUMN "createdIp" SET NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE "users" ALTER COLUMN "isActive" SET DEFAULT false;
@@ -0,0 +1 @@
1
+ ALTER TABLE "loginHistory" DROP COLUMN IF EXISTS "geoLocation";
@@ -0,0 +1 @@
1
+ ALTER TABLE "banishedIps" ADD PRIMARY KEY ("ip");
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "loginHistory" ALTER COLUMN "userId" DROP NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE "loginHistory" ALTER COLUMN "successful" SET DEFAULT false;
@@ -0,0 +1,8 @@
1
+ ALTER TABLE "banishedIps" ALTER COLUMN "banishedAt" SET DATA TYPE timestamp with time zone;--> statement-breakpoint
2
+ ALTER TABLE "banishedIps" ALTER COLUMN "banishedUntil" SET DATA TYPE timestamp with time zone;--> statement-breakpoint
3
+ ALTER TABLE "loginHistory" ALTER COLUMN "loginTime" SET DATA TYPE timestamp with time zone;--> statement-breakpoint
4
+ ALTER TABLE "passwordResetAttempts" ALTER COLUMN "requestedAt" SET DATA TYPE timestamp with time zone;--> statement-breakpoint
5
+ ALTER TABLE "passwordResetAttempts" ALTER COLUMN "succeededAt" SET DATA TYPE timestamp with time zone;--> statement-breakpoint
6
+ ALTER TABLE "userChanges" ALTER COLUMN "changedAt" SET DATA TYPE timestamp with time zone;--> statement-breakpoint
7
+ ALTER TABLE "users" ALTER COLUMN "createdAt" SET DATA TYPE timestamp with time zone;--> statement-breakpoint
8
+ ALTER TABLE "users" ALTER COLUMN "verifiedAt" SET DATA TYPE timestamp with time zone;
@@ -0,0 +1,168 @@
1
+ {
2
+ "id": "682a6a4a-d065-4536-b478-63c29ffb8ae1",
3
+ "prevId": "00000000-0000-0000-0000-000000000000",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.games": {
8
+ "name": "games",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "gen_random_uuid()"
17
+ }
18
+ },
19
+ "indexes": {},
20
+ "foreignKeys": {},
21
+ "compositePrimaryKeys": {},
22
+ "uniqueConstraints": {}
23
+ },
24
+ "public.players": {
25
+ "name": "players",
26
+ "schema": "",
27
+ "columns": {
28
+ "user_id": {
29
+ "name": "user_id",
30
+ "type": "uuid",
31
+ "primaryKey": false,
32
+ "notNull": true
33
+ },
34
+ "game_id": {
35
+ "name": "game_id",
36
+ "type": "uuid",
37
+ "primaryKey": false,
38
+ "notNull": true
39
+ },
40
+ "score": {
41
+ "name": "score",
42
+ "type": "integer",
43
+ "primaryKey": false,
44
+ "notNull": true
45
+ }
46
+ },
47
+ "indexes": {},
48
+ "foreignKeys": {
49
+ "players_user_id_users_id_fk": {
50
+ "name": "players_user_id_users_id_fk",
51
+ "tableFrom": "players",
52
+ "tableTo": "users",
53
+ "columnsFrom": [
54
+ "user_id"
55
+ ],
56
+ "columnsTo": [
57
+ "id"
58
+ ],
59
+ "onDelete": "no action",
60
+ "onUpdate": "no action"
61
+ },
62
+ "players_game_id_games_id_fk": {
63
+ "name": "players_game_id_games_id_fk",
64
+ "tableFrom": "players",
65
+ "tableTo": "games",
66
+ "columnsFrom": [
67
+ "game_id"
68
+ ],
69
+ "columnsTo": [
70
+ "id"
71
+ ],
72
+ "onDelete": "no action",
73
+ "onUpdate": "no action"
74
+ }
75
+ },
76
+ "compositePrimaryKeys": {
77
+ "players_user_id_game_id_pk": {
78
+ "name": "players_user_id_game_id_pk",
79
+ "columns": [
80
+ "user_id",
81
+ "game_id"
82
+ ]
83
+ }
84
+ },
85
+ "uniqueConstraints": {}
86
+ },
87
+ "public.users": {
88
+ "name": "users",
89
+ "schema": "",
90
+ "columns": {
91
+ "id": {
92
+ "name": "id",
93
+ "type": "uuid",
94
+ "primaryKey": true,
95
+ "notNull": true,
96
+ "default": "gen_random_uuid()"
97
+ },
98
+ "username": {
99
+ "name": "username",
100
+ "type": "varchar(255)",
101
+ "primaryKey": false,
102
+ "notNull": true
103
+ },
104
+ "email": {
105
+ "name": "email",
106
+ "type": "varchar(255)",
107
+ "primaryKey": false,
108
+ "notNull": true
109
+ },
110
+ "hash": {
111
+ "name": "hash",
112
+ "type": "varchar(255)",
113
+ "primaryKey": false,
114
+ "notNull": true
115
+ },
116
+ "salt": {
117
+ "name": "salt",
118
+ "type": "varchar(255)",
119
+ "primaryKey": false,
120
+ "notNull": true
121
+ }
122
+ },
123
+ "indexes": {
124
+ "users_username_unique": {
125
+ "name": "users_username_unique",
126
+ "columns": [
127
+ {
128
+ "expression": "username",
129
+ "isExpression": false,
130
+ "asc": true,
131
+ "nulls": "last"
132
+ }
133
+ ],
134
+ "isUnique": true,
135
+ "concurrently": false,
136
+ "method": "btree",
137
+ "with": {}
138
+ },
139
+ "users_email_unique": {
140
+ "name": "users_email_unique",
141
+ "columns": [
142
+ {
143
+ "expression": "email",
144
+ "isExpression": false,
145
+ "asc": true,
146
+ "nulls": "last"
147
+ }
148
+ ],
149
+ "isUnique": true,
150
+ "concurrently": false,
151
+ "method": "btree",
152
+ "with": {}
153
+ }
154
+ },
155
+ "foreignKeys": {},
156
+ "compositePrimaryKeys": {},
157
+ "uniqueConstraints": {}
158
+ }
159
+ },
160
+ "enums": {},
161
+ "schemas": {},
162
+ "sequences": {},
163
+ "_meta": {
164
+ "columns": {},
165
+ "schemas": {},
166
+ "tables": {}
167
+ }
168
+ }