1
0
mirror of https://github.com/bitwarden/server.git synced 2025-06-30 23:52:50 -05:00

[PM-1380] Modify Device Table (#2937)

* Update Models

- Add Controller Method

* Add MSSQL Migration

* Update SQL Proj

* Update SQL Migration

* Update Models

* Update SQL Project

* Add EF Migrations

* Switch to using Identifier

* Update Code Comment
This commit is contained in:
Justin Baur
2023-06-09 21:36:12 -04:00
committed by GitHub
parent 5f4a303180
commit 5874ff42c3
17 changed files with 6978 additions and 7 deletions

View File

@ -0,0 +1,116 @@
-- Add EncryptedUserKey column to Device table
IF COL_LENGTH('[dbo].[Device]', 'EncryptedUserKey') IS NULL
BEGIN
ALTER TABLE
[dbo].[Device]
ADD
[EncryptedUserKey] VARCHAR(MAX) NULL;
END
GO
-- Add EncryptedPublicKey column to Device table
IF COL_LENGTH('[dbo].[Device]', 'EncryptedPublicKey') IS NULL
BEGIN
ALTER TABLE
[dbo].[Device]
ADD
[EncryptedPublicKey] VARCHAR(MAX) NULL;
END
GO
-- Add EncryptedPrivateKey column to Device table
IF COL_LENGTH('[dbo].[Device]', 'EncryptedPrivateKey') IS NULL
BEGIN
ALTER TABLE
[dbo].[Device]
ADD
[EncryptedPrivateKey] VARCHAR(MAX) NULL;
END
GO
CREATE OR ALTER PROCEDURE [dbo].[Device_Create]
@Id UNIQUEIDENTIFIER OUTPUT,
@UserId UNIQUEIDENTIFIER,
@Name NVARCHAR(50),
@Type TINYINT,
@Identifier NVARCHAR(50),
@PushToken NVARCHAR(255),
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7),
@EncryptedUserKey VARCHAR(MAX) = NULL,
@EncryptedPublicKey VARCHAR(MAX) = NULL,
@EncryptedPrivateKey VARCHAR(MAX) = NULL
AS
BEGIN
SET NOCOUNT ON
INSERT INTO [dbo].[Device]
(
[Id],
[UserId],
[Name],
[Type],
[Identifier],
[PushToken],
[CreationDate],
[RevisionDate],
[EncryptedUserKey],
[EncryptedPublicKey],
[EncryptedPrivateKey]
)
VALUES
(
@Id,
@UserId,
@Name,
@Type,
@Identifier,
@PushToken,
@CreationDate,
@RevisionDate,
@EncryptedUserKey,
@EncryptedPublicKey,
@EncryptedPrivateKey
)
END
GO
CREATE OR ALTER PROCEDURE [dbo].[Device_Update]
@Id UNIQUEIDENTIFIER,
@UserId UNIQUEIDENTIFIER,
@Name NVARCHAR(50),
@Type TINYINT,
@Identifier NVARCHAR(50),
@PushToken NVARCHAR(255),
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7),
@EncryptedUserKey VARCHAR(MAX) = NULL,
@EncryptedPublicKey VARCHAR(MAX) = NULL,
@EncryptedPrivateKey VARCHAR(MAX) = NULL
AS
BEGIN
SET NOCOUNT ON
UPDATE
[dbo].[Device]
SET
[UserId] = @UserId,
[Name] = @Name,
[Type] = @Type,
[Identifier] = @Identifier,
[PushToken] = @PushToken,
[CreationDate] = @CreationDate,
[RevisionDate] = @RevisionDate,
[EncryptedUserKey] = @EncryptedUserKey,
[EncryptedPublicKey] = @EncryptedPublicKey,
[EncryptedPrivateKey] = @EncryptedPrivateKey
WHERE
[Id] = @Id
END
GO
IF OBJECT_ID('[dbo].[DeviceView]') IS NOT NULL
BEGIN
EXECUTE sp_refreshsqlmodule N'[dbo].[DeviceView]';
END
GO

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,47 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Bit.MySqlMigrations.Migrations;
public partial class AddKeysToDevice : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "EncryptedPrivateKey",
table: "Device",
type: "longtext",
nullable: true)
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.AddColumn<string>(
name: "EncryptedPublicKey",
table: "Device",
type: "longtext",
nullable: true)
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.AddColumn<string>(
name: "EncryptedUserKey",
table: "Device",
type: "longtext",
nullable: true)
.Annotation("MySql:CharSet", "utf8mb4");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "EncryptedPrivateKey",
table: "Device");
migrationBuilder.DropColumn(
name: "EncryptedPublicKey",
table: "Device");
migrationBuilder.DropColumn(
name: "EncryptedUserKey",
table: "Device");
}
}

View File

@ -319,6 +319,15 @@ namespace Bit.MySqlMigrations.Migrations
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime(6)");
b.Property<string>("EncryptedPrivateKey")
.HasColumnType("longtext");
b.Property<string>("EncryptedPublicKey")
.HasColumnType("longtext");
b.Property<string>("EncryptedUserKey")
.HasColumnType("longtext");
b.Property<string>("Identifier")
.HasMaxLength(50)
.HasColumnType("varchar(50)");

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,44 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Bit.PostgresMigrations.Migrations;
public partial class AddKeysToDevice : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "EncryptedPrivateKey",
table: "Device",
type: "text",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "EncryptedPublicKey",
table: "Device",
type: "text",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "EncryptedUserKey",
table: "Device",
type: "text",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "EncryptedPrivateKey",
table: "Device");
migrationBuilder.DropColumn(
name: "EncryptedPublicKey",
table: "Device");
migrationBuilder.DropColumn(
name: "EncryptedUserKey",
table: "Device");
}
}

View File

@ -328,6 +328,15 @@ namespace Bit.PostgresMigrations.Migrations
b.Property<DateTime>("CreationDate")
.HasColumnType("timestamp with time zone");
b.Property<string>("EncryptedPrivateKey")
.HasColumnType("text");
b.Property<string>("EncryptedPublicKey")
.HasColumnType("text");
b.Property<string>("EncryptedUserKey")
.HasColumnType("text");
b.Property<string>("Identifier")
.HasMaxLength(50)
.HasColumnType("character varying(50)");

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,44 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Bit.SqliteMigrations.Migrations;
public partial class AddKeysToDevice : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "EncryptedPrivateKey",
table: "Device",
type: "TEXT",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "EncryptedPublicKey",
table: "Device",
type: "TEXT",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "EncryptedUserKey",
table: "Device",
type: "TEXT",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "EncryptedPrivateKey",
table: "Device");
migrationBuilder.DropColumn(
name: "EncryptedPublicKey",
table: "Device");
migrationBuilder.DropColumn(
name: "EncryptedUserKey",
table: "Device");
}
}

View File

@ -317,6 +317,15 @@ namespace Bit.SqliteMigrations.Migrations
b.Property<DateTime>("CreationDate")
.HasColumnType("TEXT");
b.Property<string>("EncryptedPrivateKey")
.HasColumnType("TEXT");
b.Property<string>("EncryptedPublicKey")
.HasColumnType("TEXT");
b.Property<string>("EncryptedUserKey")
.HasColumnType("TEXT");
b.Property<string>("Identifier")
.HasMaxLength(50)
.HasColumnType("TEXT");