mirror of
https://github.com/bitwarden/server.git
synced 2025-06-30 07:36:14 -05:00
[PM-8108] Add Duo SDK v4 metadata to Duo Two Factor Provider (#4774)
* Migrate Duo Two Factor Configuration to support both v2 and v4 * Postgres Migrations * SQLite migrations * comment updates for SQLite; Query changes for consistency; * comment clean up; formatting
This commit is contained in:
@ -0,0 +1,35 @@
|
||||
/*
|
||||
I spent some time looking into how to batch process these queries, but SQLite does not have
|
||||
a good interface for batch processing. So to improve readability and maintain veloicty I've opted
|
||||
for a single update query for each table: "User" and "Organization".
|
||||
|
||||
Part of the Reasoning is that SQLite, while not a "toy database", is not usually used in larger
|
||||
deployments. Scalability is difficult in SQLite, so the assumption is the database is small for
|
||||
installations using SQLite. So not running these in a batch should not impact on users who do
|
||||
use SQLite.
|
||||
*/
|
||||
|
||||
-- Update User accounts
|
||||
UPDATE "User"
|
||||
SET TwoFactorProviders = json_set(
|
||||
json_set("User".TwoFactorProviders,
|
||||
'$."2".MetaData.ClientSecret',
|
||||
json_extract("User".TwoFactorProviders, '$."2".MetaData.SKey')),
|
||||
'$."2".MetaData.ClientId',
|
||||
json_extract("User".TwoFactorProviders, '$."2".MetaData.IKey')
|
||||
)
|
||||
WHERE TwoFactorProviders LIKE '%"2":%'
|
||||
AND JSON_VALID(TwoFactorProviders) = 1;
|
||||
|
||||
-- Update Organizations
|
||||
UPDATE "Organization"
|
||||
SET TwoFactorProviders = json_set(
|
||||
json_set("Organization".TwoFactorProviders,
|
||||
'$."6".MetaData.ClientSecret',
|
||||
json_extract("Organization".TwoFactorProviders, '$."6".MetaData.SKey')),
|
||||
'$."6".MetaData.ClientId',
|
||||
json_extract("Organization".TwoFactorProviders, '$."6".MetaData.IKey')
|
||||
)
|
||||
WHERE TwoFactorProviders LIKE '%"6":%'
|
||||
AND JSON_VALID(TwoFactorProviders) = 1;
|
||||
|
2682
util/SqliteMigrations/Migrations/20240909181758_GenerateDuoSDKVersion4TwoFactorMetadata.Designer.cs
generated
Normal file
2682
util/SqliteMigrations/Migrations/20240909181758_GenerateDuoSDKVersion4TwoFactorMetadata.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,22 @@
|
||||
using Bit.Core.Utilities;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Bit.SqliteMigrations.Migrations;
|
||||
|
||||
public partial class GenerateDuoSDKVersion4TwoFactorMetadata : Migration
|
||||
{
|
||||
private const string _duoTwoFactorDataMigrationsScript = "SqliteMigrations.HelperScripts.2024-09-05_00_SyncDuoVersionFourMetadataToVersionTwo.sql";
|
||||
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.Sql(CoreHelpers.GetEmbeddedResourceContentsAsync(_duoTwoFactorDataMigrationsScript));
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
// the changes here are additive and not destructive by adding the v4 data we are not impacting application function.
|
||||
// there is no meaningful impact to the application with this migration.
|
||||
}
|
||||
}
|
@ -26,6 +26,7 @@
|
||||
<EmbeddedResource Include="HelperScripts\2023-12-04_00_Down_GrantIndexes.sql" />
|
||||
<EmbeddedResource Include="HelperScripts\2024-04-25_00_EnableOrgsCollectionEnhancements.sql" />
|
||||
<EmbeddedResource Include="HelperScripts\2024-08-26_00_FinalFlexibleCollectionsDataMigrations.sql" />
|
||||
<EmbeddedResource Include="HelperScripts\2024-09-05_00_SyncDuoVersionFourMetadataToVersionTwo.sql" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
Reference in New Issue
Block a user