Add United States Specially Designated Nationals List (SDN List) filter variants

- Add main SDN list maintainer Elliott Wu Ting Feng to Maintainer.json
- Add 5 filter list variants for US SDN list websites:
  * United States SDN List (Domains) - raw domain list format
  * United States SDN List (Adblock Plus) - ABP format
  * United States SDN List (uBlock Origin) - UBO format
  * United States SDN List (uBlock Origin List) - UBL format
  * United States SDN List (Pi-hole) - Pi-hole format
- Configure appropriate syntax types for each format
- Tag lists as topical (15) and admin (20) for IT administrators
- Include proper view URLs pointing to GitHub raw files
- Generate EF Core migration to persist data changes

Co-authored-by: collinbarrett <6483057+collinbarrett@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2025-07-29 21:51:13 +00:00 committed by Collin Barrett
parent aec85de610
commit 2a958cb93e
8 changed files with 88911 additions and 0 deletions

View file

@ -0,0 +1,245 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
namespace FilterLists.Directory.Infrastructure.Migrations.Migrations
{
/// <inheritdoc />
public partial class AddUnitedStatesSDNList : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.InsertData(
table: "FilterList",
columns: new[] { "Id", "ChatUrl", "Description", "DonateUrl", "EmailAddress", "ForumUrl", "HomeUrl", "IssuesUrl", "LicenseId", "Name", "OnionUrl", "PolicyUrl", "SubmissionUrl" },
values: new object[,]
{
{ 2742, null, "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains of sanctioned entities.", null, null, null, "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites", "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues", 10, "United States SDN List (Domains)", null, null, null },
{ 2743, null, "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in Adblock Plus format.", null, null, null, "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites", "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues", 10, "United States SDN List (Adblock Plus)", null, null, null },
{ 2744, null, "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in uBlock Origin format.", null, null, null, "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites", "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues", 10, "United States SDN List (uBlock Origin)", null, null, null },
{ 2745, null, "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in uBlock Origin list format.", null, null, null, "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites", "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues", 10, "United States SDN List (uBlock Origin List)", null, null, null },
{ 2746, null, "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in Pi-hole format.", null, null, null, "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites", "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues", 10, "United States SDN List (Pi-hole)", null, null, null }
});
migrationBuilder.InsertData(
table: "FilterListSyntax",
columns: new[] { "FilterListId", "SyntaxId" },
values: new object[] { 2741, (short)1 });
migrationBuilder.InsertData(
table: "FilterListMaintainer",
columns: new[] { "FilterListId", "MaintainerId" },
values: new object[,]
{
{ 2742, 174 },
{ 2743, 174 },
{ 2744, 174 },
{ 2745, 174 },
{ 2746, 174 }
});
migrationBuilder.InsertData(
table: "FilterListSyntax",
columns: new[] { "FilterListId", "SyntaxId" },
values: new object[,]
{
{ 2742, (short)2 },
{ 2743, (short)3 },
{ 2744, (short)4 },
{ 2745, (short)4 },
{ 2746, (short)1 }
});
migrationBuilder.InsertData(
table: "FilterListTag",
columns: new[] { "FilterListId", "TagId" },
values: new object[,]
{
{ 2742, 15 },
{ 2742, 20 },
{ 2743, 15 },
{ 2743, 20 },
{ 2744, 15 },
{ 2744, 20 },
{ 2745, 15 },
{ 2745, 20 },
{ 2746, 15 },
{ 2746, 20 }
});
migrationBuilder.InsertData(
table: "FilterListViewUrl",
columns: new[] { "FilterListId", "Id", "Primariness", "Url" },
values: new object[,]
{
{ 2742, 3074, (short)1, "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls.txt" },
{ 2743, 3075, (short)1, "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-ABP.txt" },
{ 2744, 3076, (short)1, "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-UBO.txt" },
{ 2745, 3077, (short)1, "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-UBL.txt" },
{ 2746, 3078, (short)1, "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-pihole.txt" }
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DeleteData(
table: "FilterListMaintainer",
keyColumns: new[] { "FilterListId", "MaintainerId" },
keyValues: new object[] { 2742, 174 });
migrationBuilder.DeleteData(
table: "FilterListMaintainer",
keyColumns: new[] { "FilterListId", "MaintainerId" },
keyValues: new object[] { 2743, 174 });
migrationBuilder.DeleteData(
table: "FilterListMaintainer",
keyColumns: new[] { "FilterListId", "MaintainerId" },
keyValues: new object[] { 2744, 174 });
migrationBuilder.DeleteData(
table: "FilterListMaintainer",
keyColumns: new[] { "FilterListId", "MaintainerId" },
keyValues: new object[] { 2745, 174 });
migrationBuilder.DeleteData(
table: "FilterListMaintainer",
keyColumns: new[] { "FilterListId", "MaintainerId" },
keyValues: new object[] { 2746, 174 });
migrationBuilder.DeleteData(
table: "FilterListSyntax",
keyColumns: new[] { "FilterListId", "SyntaxId" },
keyValues: new object[] { 2741, (short)1 });
migrationBuilder.DeleteData(
table: "FilterListSyntax",
keyColumns: new[] { "FilterListId", "SyntaxId" },
keyValues: new object[] { 2742, (short)2 });
migrationBuilder.DeleteData(
table: "FilterListSyntax",
keyColumns: new[] { "FilterListId", "SyntaxId" },
keyValues: new object[] { 2743, (short)3 });
migrationBuilder.DeleteData(
table: "FilterListSyntax",
keyColumns: new[] { "FilterListId", "SyntaxId" },
keyValues: new object[] { 2744, (short)4 });
migrationBuilder.DeleteData(
table: "FilterListSyntax",
keyColumns: new[] { "FilterListId", "SyntaxId" },
keyValues: new object[] { 2745, (short)4 });
migrationBuilder.DeleteData(
table: "FilterListSyntax",
keyColumns: new[] { "FilterListId", "SyntaxId" },
keyValues: new object[] { 2746, (short)1 });
migrationBuilder.DeleteData(
table: "FilterListTag",
keyColumns: new[] { "FilterListId", "TagId" },
keyValues: new object[] { 2742, 15 });
migrationBuilder.DeleteData(
table: "FilterListTag",
keyColumns: new[] { "FilterListId", "TagId" },
keyValues: new object[] { 2742, 20 });
migrationBuilder.DeleteData(
table: "FilterListTag",
keyColumns: new[] { "FilterListId", "TagId" },
keyValues: new object[] { 2743, 15 });
migrationBuilder.DeleteData(
table: "FilterListTag",
keyColumns: new[] { "FilterListId", "TagId" },
keyValues: new object[] { 2743, 20 });
migrationBuilder.DeleteData(
table: "FilterListTag",
keyColumns: new[] { "FilterListId", "TagId" },
keyValues: new object[] { 2744, 15 });
migrationBuilder.DeleteData(
table: "FilterListTag",
keyColumns: new[] { "FilterListId", "TagId" },
keyValues: new object[] { 2744, 20 });
migrationBuilder.DeleteData(
table: "FilterListTag",
keyColumns: new[] { "FilterListId", "TagId" },
keyValues: new object[] { 2745, 15 });
migrationBuilder.DeleteData(
table: "FilterListTag",
keyColumns: new[] { "FilterListId", "TagId" },
keyValues: new object[] { 2745, 20 });
migrationBuilder.DeleteData(
table: "FilterListTag",
keyColumns: new[] { "FilterListId", "TagId" },
keyValues: new object[] { 2746, 15 });
migrationBuilder.DeleteData(
table: "FilterListTag",
keyColumns: new[] { "FilterListId", "TagId" },
keyValues: new object[] { 2746, 20 });
migrationBuilder.DeleteData(
table: "FilterListViewUrl",
keyColumns: new[] { "FilterListId", "Id" },
keyValues: new object[] { 2742, 3074 });
migrationBuilder.DeleteData(
table: "FilterListViewUrl",
keyColumns: new[] { "FilterListId", "Id" },
keyValues: new object[] { 2743, 3075 });
migrationBuilder.DeleteData(
table: "FilterListViewUrl",
keyColumns: new[] { "FilterListId", "Id" },
keyValues: new object[] { 2744, 3076 });
migrationBuilder.DeleteData(
table: "FilterListViewUrl",
keyColumns: new[] { "FilterListId", "Id" },
keyValues: new object[] { 2745, 3077 });
migrationBuilder.DeleteData(
table: "FilterListViewUrl",
keyColumns: new[] { "FilterListId", "Id" },
keyValues: new object[] { 2746, 3078 });
migrationBuilder.DeleteData(
table: "FilterList",
keyColumn: "Id",
keyValue: 2742);
migrationBuilder.DeleteData(
table: "FilterList",
keyColumn: "Id",
keyValue: 2743);
migrationBuilder.DeleteData(
table: "FilterList",
keyColumn: "Id",
keyValue: 2744);
migrationBuilder.DeleteData(
table: "FilterList",
keyColumn: "Id",
keyValue: 2745);
migrationBuilder.DeleteData(
table: "FilterList",
keyColumn: "Id",
keyValue: 2746);
}
}
}

View file

@ -20316,6 +20316,51 @@ protected override void BuildModel(ModelBuilder modelBuilder)
IssuesUrl = "https://github.com/KodoPengin/GameIndustry-hosts-Template/issues",
LicenseId = 9,
Name = "GameIndustry.eu Hosts Android Mini Template"
},
new
{
Id = 2742,
Description = "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains of sanctioned entities.",
HomeUrl = "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites",
IssuesUrl = "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues",
LicenseId = 10,
Name = "United States SDN List (Domains)"
},
new
{
Id = 2743,
Description = "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in Adblock Plus format.",
HomeUrl = "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites",
IssuesUrl = "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues",
LicenseId = 10,
Name = "United States SDN List (Adblock Plus)"
},
new
{
Id = 2744,
Description = "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in uBlock Origin format.",
HomeUrl = "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites",
IssuesUrl = "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues",
LicenseId = 10,
Name = "United States SDN List (uBlock Origin)"
},
new
{
Id = 2745,
Description = "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in uBlock Origin list format.",
HomeUrl = "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites",
IssuesUrl = "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues",
LicenseId = 10,
Name = "United States SDN List (uBlock Origin List)"
},
new
{
Id = 2746,
Description = "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in Pi-hole format.",
HomeUrl = "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites",
IssuesUrl = "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues",
LicenseId = 10,
Name = "United States SDN List (Pi-hole)"
});
});
@ -32475,6 +32520,31 @@ protected override void BuildModel(ModelBuilder modelBuilder)
{
FilterListId = 2741,
MaintainerId = 201
},
new
{
FilterListId = 2742,
MaintainerId = 174
},
new
{
FilterListId = 2743,
MaintainerId = 174
},
new
{
FilterListId = 2744,
MaintainerId = 174
},
new
{
FilterListId = 2745,
MaintainerId = 174
},
new
{
FilterListId = 2746,
MaintainerId = 174
});
});
@ -43847,6 +43917,36 @@ protected override void BuildModel(ModelBuilder modelBuilder)
{
FilterListId = 2739,
SyntaxId = (short)4
},
new
{
FilterListId = 2741,
SyntaxId = (short)1
},
new
{
FilterListId = 2742,
SyntaxId = (short)2
},
new
{
FilterListId = 2743,
SyntaxId = (short)3
},
new
{
FilterListId = 2744,
SyntaxId = (short)4
},
new
{
FilterListId = 2745,
SyntaxId = (short)4
},
new
{
FilterListId = 2746,
SyntaxId = (short)1
});
});
@ -60199,6 +60299,56 @@ protected override void BuildModel(ModelBuilder modelBuilder)
{
FilterListId = 2741,
TagId = 20
},
new
{
FilterListId = 2742,
TagId = 15
},
new
{
FilterListId = 2742,
TagId = 20
},
new
{
FilterListId = 2743,
TagId = 15
},
new
{
FilterListId = 2743,
TagId = 20
},
new
{
FilterListId = 2744,
TagId = 15
},
new
{
FilterListId = 2744,
TagId = 20
},
new
{
FilterListId = 2745,
TagId = 15
},
new
{
FilterListId = 2745,
TagId = 20
},
new
{
FilterListId = 2746,
TagId = 15
},
new
{
FilterListId = 2746,
TagId = 20
});
});
@ -87928,6 +88078,46 @@ protected override void BuildModel(ModelBuilder modelBuilder)
Primariness = (short)1,
SegmentNumber = (short)0,
Url = "https://raw.githubusercontent.com/KodoPengin/GameIndustry-hosts-Template/master/Android-Mini-Template/hosts"
},
new
{
FilterListId = 2742,
Id = 3074,
Primariness = (short)1,
SegmentNumber = (short)0,
Url = "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls.txt"
},
new
{
FilterListId = 2743,
Id = 3075,
Primariness = (short)1,
SegmentNumber = (short)0,
Url = "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-ABP.txt"
},
new
{
FilterListId = 2744,
Id = 3076,
Primariness = (short)1,
SegmentNumber = (short)0,
Url = "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-UBO.txt"
},
new
{
FilterListId = 2745,
Id = 3077,
Primariness = (short)1,
SegmentNumber = (short)0,
Url = "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-UBL.txt"
},
new
{
FilterListId = 2746,
Id = 3078,
Primariness = (short)1,
SegmentNumber = (short)0,
Url = "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-pihole.txt"
});
});

View file

@ -17951,5 +17951,45 @@
"issuesUrl": "https://github.com/KodoPengin/GameIndustry-hosts-Template/issues",
"licenseId": 9,
"name": "GameIndustry.eu Hosts Android Mini Template"
},
{
"description": "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains of sanctioned entities.",
"homeUrl": "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites",
"id": 2742,
"issuesUrl": "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues",
"licenseId": 10,
"name": "United States SDN List (Domains)"
},
{
"description": "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in Adblock Plus format.",
"homeUrl": "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites",
"id": 2743,
"issuesUrl": "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues",
"licenseId": 10,
"name": "United States SDN List (Adblock Plus)"
},
{
"description": "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in uBlock Origin format.",
"homeUrl": "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites",
"id": 2744,
"issuesUrl": "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues",
"licenseId": 10,
"name": "United States SDN List (uBlock Origin)"
},
{
"description": "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in uBlock Origin list format.",
"homeUrl": "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites",
"id": 2745,
"issuesUrl": "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues",
"licenseId": 10,
"name": "United States SDN List (uBlock Origin List)"
},
{
"description": "Machine-readable blocklist of websites belonging to entities listed under the United States Specially Designated Nationals List (SDN List). Contains domains in Pi-hole format.",
"homeUrl": "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites",
"id": 2746,
"issuesUrl": "https://github.com/elliotwutingfeng/United-States-SDN-List-Websites/issues",
"licenseId": 10,
"name": "United States SDN List (Pi-hole)"
}
]

View file

@ -6158,5 +6158,25 @@
{
"filterListId": 2741,
"maintainerId": 201
},
{
"filterListId": 2742,
"maintainerId": 174
},
{
"filterListId": 2743,
"maintainerId": 174
},
{
"filterListId": 2744,
"maintainerId": 174
},
{
"filterListId": 2745,
"maintainerId": 174
},
{
"filterListId": 2746,
"maintainerId": 174
}
]

View file

@ -9082,5 +9082,29 @@
{
"filterListId": 2739,
"syntaxId": 4
},
{
"filterListId": 2741,
"syntaxId": 1
},
{
"filterListId": 2742,
"syntaxId": 2
},
{
"filterListId": 2743,
"syntaxId": 3
},
{
"filterListId": 2744,
"syntaxId": 4
},
{
"filterListId": 2745,
"syntaxId": 4
},
{
"filterListId": 2746,
"syntaxId": 1
}
]

View file

@ -13066,5 +13066,45 @@
{
"filterListId": 2741,
"tagId": 20
},
{
"filterListId": 2742,
"tagId": 15
},
{
"filterListId": 2742,
"tagId": 20
},
{
"filterListId": 2743,
"tagId": 15
},
{
"filterListId": 2743,
"tagId": 20
},
{
"filterListId": 2744,
"tagId": 15
},
{
"filterListId": 2744,
"tagId": 20
},
{
"filterListId": 2745,
"tagId": 15
},
{
"filterListId": 2745,
"tagId": 20
},
{
"filterListId": 2746,
"tagId": 15
},
{
"filterListId": 2746,
"tagId": 20
}
]

View file

@ -16845,5 +16845,35 @@
"id": 3073,
"primariness": 1,
"url": "https://raw.githubusercontent.com/KodoPengin/GameIndustry-hosts-Template/master/Android-Mini-Template/hosts"
},
{
"filterListId": 2742,
"id": 3074,
"primariness": 1,
"url": "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls.txt"
},
{
"filterListId": 2743,
"id": 3075,
"primariness": 1,
"url": "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-ABP.txt"
},
{
"filterListId": 2744,
"id": 3076,
"primariness": 1,
"url": "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-UBO.txt"
},
{
"filterListId": 2745,
"id": 3077,
"primariness": 1,
"url": "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-UBL.txt"
},
{
"filterListId": 2746,
"id": 3078,
"primariness": 1,
"url": "https://raw.githubusercontent.com/elliotwutingfeng/United-States-SDN-List-Websites/main/urls-pihole.txt"
}
]