My Project 1.0
Open Source Encrypted Vault Storage
Loading...
Searching...
No Matches
20250920041032_ApiSchema.cs
Go to the documentation of this file.
1using System;
2using Microsoft.EntityFrameworkCore.Migrations;
3
4#nullable disable
5
7{
9 public partial class ApiSchema : Migration
10 {
12 protected override void Up(MigrationBuilder migrationBuilder)
13 {
14 migrationBuilder.CreateTable(
15 name: "AspNetRoles",
16 columns: table => new
17 {
18 Id = table.Column<string>(type: "nvarchar(450)", nullable: false),
19 Name = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
20 NormalizedName = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
21 ConcurrencyStamp = table.Column<string>(type: "nvarchar(max)", nullable: true)
22 },
23 constraints: table =>
24 {
25 table.PrimaryKey("PK_AspNetRoles", x => x.Id);
26 });
27
28 migrationBuilder.CreateTable(
29 name: "AspNetUsers",
30 columns: table => new
31 {
32 Id = table.Column<string>(type: "nvarchar(450)", nullable: false),
33 KeySalt = table.Column<byte[]>(type: "varbinary(max)", nullable: false),
34 UserName = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
35 NormalizedUserName = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
36 Email = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
37 NormalizedEmail = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: true),
38 EmailConfirmed = table.Column<bool>(type: "bit", nullable: false),
39 PasswordHash = table.Column<string>(type: "nvarchar(max)", nullable: true),
40 SecurityStamp = table.Column<string>(type: "nvarchar(max)", nullable: true),
41 ConcurrencyStamp = table.Column<string>(type: "nvarchar(max)", nullable: true),
42 PhoneNumber = table.Column<string>(type: "nvarchar(max)", nullable: true),
43 PhoneNumberConfirmed = table.Column<bool>(type: "bit", nullable: false),
44 TwoFactorEnabled = table.Column<bool>(type: "bit", nullable: false),
45 LockoutEnd = table.Column<DateTimeOffset>(type: "datetimeoffset", nullable: true),
46 LockoutEnabled = table.Column<bool>(type: "bit", nullable: false),
47 AccessFailedCount = table.Column<int>(type: "int", nullable: false)
48 },
49 constraints: table =>
50 {
51 table.PrimaryKey("PK_AspNetUsers", x => x.Id);
52 });
53
54 migrationBuilder.CreateTable(
55 name: "AspNetRoleClaims",
56 columns: table => new
57 {
58 Id = table.Column<int>(type: "int", nullable: false)
59 .Annotation("SqlServer:Identity", "1, 1"),
60 RoleId = table.Column<string>(type: "nvarchar(450)", nullable: false),
61 ClaimType = table.Column<string>(type: "nvarchar(max)", nullable: true),
62 ClaimValue = table.Column<string>(type: "nvarchar(max)", nullable: true)
63 },
64 constraints: table =>
65 {
66 table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id);
67 table.ForeignKey(
68 name: "FK_AspNetRoleClaims_AspNetRoles_RoleId",
69 column: x => x.RoleId,
70 principalTable: "AspNetRoles",
71 principalColumn: "Id",
72 onDelete: ReferentialAction.Cascade);
73 });
74
75 migrationBuilder.CreateTable(
76 name: "AspNetUserClaims",
77 columns: table => new
78 {
79 Id = table.Column<int>(type: "int", nullable: false)
80 .Annotation("SqlServer:Identity", "1, 1"),
81 UserId = table.Column<string>(type: "nvarchar(450)", nullable: false),
82 ClaimType = table.Column<string>(type: "nvarchar(max)", nullable: true),
83 ClaimValue = table.Column<string>(type: "nvarchar(max)", nullable: true)
84 },
85 constraints: table =>
86 {
87 table.PrimaryKey("PK_AspNetUserClaims", x => x.Id);
88 table.ForeignKey(
89 name: "FK_AspNetUserClaims_AspNetUsers_UserId",
90 column: x => x.UserId,
91 principalTable: "AspNetUsers",
92 principalColumn: "Id",
93 onDelete: ReferentialAction.Cascade);
94 });
95
96 migrationBuilder.CreateTable(
97 name: "AspNetUserLogins",
98 columns: table => new
99 {
100 LoginProvider = table.Column<string>(type: "nvarchar(450)", nullable: false),
101 ProviderKey = table.Column<string>(type: "nvarchar(450)", nullable: false),
102 ProviderDisplayName = table.Column<string>(type: "nvarchar(max)", nullable: true),
103 UserId = table.Column<string>(type: "nvarchar(450)", nullable: false)
104 },
105 constraints: table =>
106 {
107 table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey });
108 table.ForeignKey(
109 name: "FK_AspNetUserLogins_AspNetUsers_UserId",
110 column: x => x.UserId,
111 principalTable: "AspNetUsers",
112 principalColumn: "Id",
113 onDelete: ReferentialAction.Cascade);
114 });
115
116 migrationBuilder.CreateTable(
117 name: "AspNetUserRoles",
118 columns: table => new
119 {
120 UserId = table.Column<string>(type: "nvarchar(450)", nullable: false),
121 RoleId = table.Column<string>(type: "nvarchar(450)", nullable: false)
122 },
123 constraints: table =>
124 {
125 table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId });
126 table.ForeignKey(
127 name: "FK_AspNetUserRoles_AspNetRoles_RoleId",
128 column: x => x.RoleId,
129 principalTable: "AspNetRoles",
130 principalColumn: "Id",
131 onDelete: ReferentialAction.Cascade);
132 table.ForeignKey(
133 name: "FK_AspNetUserRoles_AspNetUsers_UserId",
134 column: x => x.UserId,
135 principalTable: "AspNetUsers",
136 principalColumn: "Id",
137 onDelete: ReferentialAction.Cascade);
138 });
139
140 migrationBuilder.CreateTable(
141 name: "AspNetUserTokens",
142 columns: table => new
143 {
144 UserId = table.Column<string>(type: "nvarchar(450)", nullable: false),
145 LoginProvider = table.Column<string>(type: "nvarchar(450)", nullable: false),
146 Name = table.Column<string>(type: "nvarchar(450)", nullable: false),
147 Value = table.Column<string>(type: "nvarchar(max)", nullable: true)
148 },
149 constraints: table =>
150 {
151 table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
152 table.ForeignKey(
153 name: "FK_AspNetUserTokens_AspNetUsers_UserId",
154 column: x => x.UserId,
155 principalTable: "AspNetUsers",
156 principalColumn: "Id",
157 onDelete: ReferentialAction.Cascade);
158 });
159
160 migrationBuilder.CreateTable(
161 name: "UserActivities",
162 columns: table => new
163 {
164 Id = table.Column<long>(type: "bigint", nullable: false)
165 .Annotation("SqlServer:Identity", "1, 1"),
166 UserId = table.Column<string>(type: "nvarchar(450)", nullable: false),
167 ActivityType = table.Column<int>(type: "int", nullable: false),
168 Timestamp = table.Column<DateTime>(type: "datetime2", nullable: false),
169 IpAddress = table.Column<string>(type: "nvarchar(45)", maxLength: 45, nullable: false),
170 Success = table.Column<bool>(type: "bit", nullable: false),
171 Details = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: true),
172 UserAgent = table.Column<string>(type: "nvarchar(max)", nullable: true)
173 },
174 constraints: table =>
175 {
176 table.PrimaryKey("PK_UserActivities", x => x.Id);
177 table.ForeignKey(
178 name: "FK_UserActivities_AspNetUsers_UserId",
179 column: x => x.UserId,
180 principalTable: "AspNetUsers",
181 principalColumn: "Id",
182 onDelete: ReferentialAction.Cascade);
183 });
184
185 migrationBuilder.CreateTable(
186 name: "VaultItems",
187 columns: table => new
188 {
189 ItemId = table.Column<int>(type: "int", nullable: false)
190 .Annotation("SqlServer:Identity", "1, 1"),
191 UserId = table.Column<string>(type: "nvarchar(450)", nullable: false),
192 Name = table.Column<string>(type: "nvarchar(max)", nullable: false),
193 IsBlobStored = table.Column<bool>(type: "bit", nullable: false),
194 ItemType = table.Column<int>(type: "int", nullable: false),
195 EncryptedData = table.Column<byte[]>(type: "varbinary(max)", nullable: false),
196 BlobId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
197 Iv = table.Column<byte[]>(type: "varbinary(max)", nullable: false),
198 CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: false),
199 UpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: false)
200 },
201 constraints: table =>
202 {
203 table.PrimaryKey("PK_VaultItems", x => x.ItemId);
204 table.ForeignKey(
205 name: "FK_VaultItems_AspNetUsers_UserId",
206 column: x => x.UserId,
207 principalTable: "AspNetUsers",
208 principalColumn: "Id",
209 onDelete: ReferentialAction.Cascade);
210 });
211
212 migrationBuilder.CreateTable(
213 name: "StoredBlobs",
214 columns: table => new
215 {
216 BlobId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
217 VaultItemId = table.Column<int>(type: "int", nullable: false),
218 Data = table.Column<byte[]>(type: "varbinary(max)", nullable: false)
219 },
220 constraints: table =>
221 {
222 table.PrimaryKey("PK_StoredBlobs", x => x.BlobId);
223 table.ForeignKey(
224 name: "FK_StoredBlobs_VaultItems_VaultItemId",
225 column: x => x.VaultItemId,
226 principalTable: "VaultItems",
227 principalColumn: "ItemId",
228 onDelete: ReferentialAction.Cascade);
229 });
230
231 migrationBuilder.CreateIndex(
232 name: "IX_AspNetRoleClaims_RoleId",
233 table: "AspNetRoleClaims",
234 column: "RoleId");
235
236 migrationBuilder.CreateIndex(
237 name: "RoleNameIndex",
238 table: "AspNetRoles",
239 column: "NormalizedName",
240 unique: true,
241 filter: "[NormalizedName] IS NOT NULL");
242
243 migrationBuilder.CreateIndex(
244 name: "IX_AspNetUserClaims_UserId",
245 table: "AspNetUserClaims",
246 column: "UserId");
247
248 migrationBuilder.CreateIndex(
249 name: "IX_AspNetUserLogins_UserId",
250 table: "AspNetUserLogins",
251 column: "UserId");
252
253 migrationBuilder.CreateIndex(
254 name: "IX_AspNetUserRoles_RoleId",
255 table: "AspNetUserRoles",
256 column: "RoleId");
257
258 migrationBuilder.CreateIndex(
259 name: "EmailIndex",
260 table: "AspNetUsers",
261 column: "NormalizedEmail");
262
263 migrationBuilder.CreateIndex(
264 name: "UserNameIndex",
265 table: "AspNetUsers",
266 column: "NormalizedUserName",
267 unique: true,
268 filter: "[NormalizedUserName] IS NOT NULL");
269
270 migrationBuilder.CreateIndex(
271 name: "IX_StoredBlobs_VaultItemId",
272 table: "StoredBlobs",
273 column: "VaultItemId",
274 unique: true);
275
276 migrationBuilder.CreateIndex(
277 name: "IX_UserActivities_Timestamp",
278 table: "UserActivities",
279 column: "Timestamp");
280
281 migrationBuilder.CreateIndex(
282 name: "IX_UserActivities_UserId",
283 table: "UserActivities",
284 column: "UserId");
285
286 migrationBuilder.CreateIndex(
287 name: "IX_VaultItems_UserId",
288 table: "VaultItems",
289 column: "UserId");
290 }
291
293 protected override void Down(MigrationBuilder migrationBuilder)
294 {
295 migrationBuilder.DropTable(
296 name: "AspNetRoleClaims");
297
298 migrationBuilder.DropTable(
299 name: "AspNetUserClaims");
300
301 migrationBuilder.DropTable(
302 name: "AspNetUserLogins");
303
304 migrationBuilder.DropTable(
305 name: "AspNetUserRoles");
306
307 migrationBuilder.DropTable(
308 name: "AspNetUserTokens");
309
310 migrationBuilder.DropTable(
311 name: "StoredBlobs");
312
313 migrationBuilder.DropTable(
314 name: "UserActivities");
315
316 migrationBuilder.DropTable(
317 name: "AspNetRoles");
318
319 migrationBuilder.DropTable(
320 name: "VaultItems");
321
322 migrationBuilder.DropTable(
323 name: "AspNetUsers");
324 }
325 }
326}
override void Down(MigrationBuilder migrationBuilder)
override void Up(MigrationBuilder migrationBuilder)