From c6fa0573d1b1cc46d1a26055c3429e6794938ded Mon Sep 17 00:00:00 2001 From: William Harrison <87287585+wdhdev@users.noreply.github.com> Date: Tue, 13 May 2025 15:51:45 +0800 Subject: [PATCH] support for bluesky service records --- dnsconfig.js | 4 ++++ domains/_atproto.alvin.json | 9 --------- domains/_atproto.catto24.json | 10 ---------- domains/_atproto.clyron.json | 9 --------- domains/_atproto.crischutu07.json | 10 ---------- domains/_atproto.exyxz.json | 9 --------- domains/_atproto.hcj.json | 10 ---------- domains/_atproto.horibyte.json | 9 --------- domains/_atproto.jumanji.json | 10 ---------- domains/_atproto.lua.json | 9 --------- domains/_atproto.luihh.json | 10 ---------- domains/_atproto.lumi.json | 9 --------- domains/_atproto.narasima.json | 10 ---------- domains/_atproto.notcoded.json | 11 ----------- domains/_atproto.priyanshu.json | 9 --------- domains/_atproto.raccoon.json | 9 --------- domains/_atproto.thelamplighter.json | 9 --------- domains/alvin.json | 3 ++- domains/catto24.json | 3 ++- domains/clyron.json | 3 ++- domains/crischutu07.json | 3 ++- domains/exyxz.json | 3 ++- domains/hcj.json | 3 ++- domains/horibyte.json | 3 +++ domains/jumanji.json | 3 ++- domains/lua.json | 3 ++- domains/luihh.json | 3 ++- domains/lumi.json | 3 ++- domains/narasima.json | 3 ++- domains/notcoded.json | 3 ++- domains/priyanshu.json | 3 ++- domains/raccoon.json | 3 ++- domains/thelamplighter.json | 3 +++ tests/domains.test.js | 7 +++++++ tests/json.test.js | 4 ++++ tests/records.test.js | 6 ++++++ 36 files changed, 55 insertions(+), 166 deletions(-) delete mode 100644 domains/_atproto.alvin.json delete mode 100644 domains/_atproto.catto24.json delete mode 100644 domains/_atproto.clyron.json delete mode 100644 domains/_atproto.crischutu07.json delete mode 100644 domains/_atproto.exyxz.json delete mode 100644 domains/_atproto.hcj.json delete mode 100644 domains/_atproto.horibyte.json delete mode 100644 domains/_atproto.jumanji.json delete mode 100644 domains/_atproto.lua.json delete mode 100644 domains/_atproto.luihh.json delete mode 100644 domains/_atproto.lumi.json delete mode 100644 domains/_atproto.narasima.json delete mode 100644 domains/_atproto.notcoded.json delete mode 100644 domains/_atproto.priyanshu.json delete mode 100644 domains/_atproto.raccoon.json delete mode 100644 domains/_atproto.thelamplighter.json diff --git a/dnsconfig.js b/dnsconfig.js index b43be7405b..c2ee90aa03 100644 --- a/dnsconfig.js +++ b/dnsconfig.js @@ -155,6 +155,10 @@ for (var subdomain in domains) { records.push(TXT("_vercel." + subdomainName, "\"" + data.services.vercel + "\"")); } } + + if (data.services.bluesky) { + records.push(TXT("_atproto." + subdomainName, "\"" + data.services.bluesky + "\"")); + } } } diff --git a/domains/_atproto.alvin.json b/domains/_atproto.alvin.json deleted file mode 100644 index a64f4e7a8c..0000000000 --- a/domains/_atproto.alvin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "alvinsjoy", - "discord": "825382504353234954" - }, - "records": { - "TXT": "did=did:plc:jkk7sl4llede4zzj2ctgkwsc" - } -} diff --git a/domains/_atproto.catto24.json b/domains/_atproto.catto24.json deleted file mode 100644 index cec2afce40..0000000000 --- a/domains/_atproto.catto24.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "description": "domain verification for bluesky", - "owner": { - "username": "catto24", - "email": "catto24@proton.me" - }, - "records": { - "TXT": "did=did:plc:whzff4s3db6taso3s43ylrou" - } -} diff --git a/domains/_atproto.clyron.json b/domains/_atproto.clyron.json deleted file mode 100644 index 47537bcea3..0000000000 --- a/domains/_atproto.clyron.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "theclyron", - "email": "onenonlyclyron@gmail.com" - }, - "records": { - "TXT": "did=did:plc:fqvzbqsjzjkl4o66rfp6cgk3" - } -} diff --git a/domains/_atproto.crischutu07.json b/domains/_atproto.crischutu07.json deleted file mode 100644 index 05f26263e9..0000000000 --- a/domains/_atproto.crischutu07.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "owner": { - "username": "crischutu07", - "email": "crischutu07owo@gmail.com", - "description": "Bluesky custom handle." - }, - "records": { - "TXT": "did=did:plc:tfpfqi3qewuc5ugaipb57waa" - } -} diff --git a/domains/_atproto.exyxz.json b/domains/_atproto.exyxz.json deleted file mode 100644 index 150d71d7e7..0000000000 --- a/domains/_atproto.exyxz.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "exyxz", - "discord": "exyxz" - }, - "records": { - "TXT": "did=did:plc:73r55srxmmlhhiof7fnllisy" - } -} diff --git a/domains/_atproto.hcj.json b/domains/_atproto.hcj.json deleted file mode 100644 index 1958af13df..0000000000 --- a/domains/_atproto.hcj.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "description": "domain verification for bluesky", - "owner": { - "username": "TheHCJ", - "bluesky": "did:plc:5f2c6awh4ffekm7srmi4d6zg" - }, - "records": { - "TXT": "did:plc:5f2c6awh4ffekm7srmi4d6zg" - } -} diff --git a/domains/_atproto.horibyte.json b/domains/_atproto.horibyte.json deleted file mode 100644 index 9b173d6a79..0000000000 --- a/domains/_atproto.horibyte.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "horibyte", - "email": "thehoribyte@gmail.com" - }, - "records": { - "TXT": "did=did:plc:5ls3iv54vrppjxbs5ztocd75" - } -} diff --git a/domains/_atproto.jumanji.json b/domains/_atproto.jumanji.json deleted file mode 100644 index a3d5976b7b..0000000000 --- a/domains/_atproto.jumanji.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "description": "domain verification for bluesky", - "owner": { - "username": "heyjumanji", - "email": "madhuchutiya.unhinge50@silomails.com" - }, - "records": { - "TXT": "did=did:plc:nrjpabfv3zoxd6kiwr6fs4lq" - } -} diff --git a/domains/_atproto.lua.json b/domains/_atproto.lua.json deleted file mode 100644 index 92b79faad9..0000000000 --- a/domains/_atproto.lua.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "notxlua", - "email": "notxlua@gmail.com" - }, - "records": { - "TXT": "did=did:plc:j7iap5lpvblnrr7lygisgjzp" - } -} diff --git a/domains/_atproto.luihh.json b/domains/_atproto.luihh.json deleted file mode 100644 index 6c0b0cb3b2..0000000000 --- a/domains/_atproto.luihh.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "description": "domain verification for bluesky", - "owner": { - "username": "luihh", - "email": "luihh@proton.me" - }, - "records": { - "TXT": "did=did:plc:nkzlgllahrw2v2y6p4inqx6t" - } -} diff --git a/domains/_atproto.lumi.json b/domains/_atproto.lumi.json deleted file mode 100644 index e8f3a338db..0000000000 --- a/domains/_atproto.lumi.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "itssfatlum", - "email": "fatlum@lumi.is-a.dev" - }, - "records": { - "TXT": "did=did:plc:c6m5rghb7tkmf5isd3pqjpbt" - } -} diff --git a/domains/_atproto.narasima.json b/domains/_atproto.narasima.json deleted file mode 100644 index 624d2ce14a..0000000000 --- a/domains/_atproto.narasima.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "owner": { - "username": "NarasimaPandiyan", - "email": "cs42059@gmail.com", - "discord": "gamingdoodle" - }, - "records": { - "TXT": "did=did:plc:u5uxl7mjlywolajtgso2ouoe" - } -} diff --git a/domains/_atproto.notcoded.json b/domains/_atproto.notcoded.json deleted file mode 100644 index f33c478eef..0000000000 --- a/domains/_atproto.notcoded.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "description": "domain verification for bluesky", - "owner": { - "username": "not-coded", - "discord": "notcoded", - "discordUserID": "620662953347121163" - }, - "records": { - "TXT": "did=did:plc:hvgfiqmdl5sqcba2453dfpxe" - } -} diff --git a/domains/_atproto.priyanshu.json b/domains/_atproto.priyanshu.json deleted file mode 100644 index 1884b8dd5e..0000000000 --- a/domains/_atproto.priyanshu.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "Priyansxu", - "email": "priyansxu@yahoo.com" - }, - "records": { - "TXT": "did=did:plc:psimj7hgshwoets2jvd6caib" - } -} diff --git a/domains/_atproto.raccoon.json b/domains/_atproto.raccoon.json deleted file mode 100644 index 8b52f41e57..0000000000 --- a/domains/_atproto.raccoon.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "nilsraccoon", - "discord": "1129507464589627512" - }, - "records": { - "TXT": "did=did:plc:25w7vwbzb2e3h7cnflqskp37" - } -} diff --git a/domains/_atproto.thelamplighter.json b/domains/_atproto.thelamplighter.json deleted file mode 100644 index 8a890a4c35..0000000000 --- a/domains/_atproto.thelamplighter.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "thelamplighter-0", - "email": "thesamueliyeh@gmail.com" - }, - "records": { - "TXT": "did=did:plc:g3ej5yewgi7ee7uipfzyrczc" - } -} diff --git a/domains/alvin.json b/domains/alvin.json index c8787f38dd..2c9b90d96f 100644 --- a/domains/alvin.json +++ b/domains/alvin.json @@ -24,6 +24,7 @@ "vc-domain-verify=www.todo.alvin.is-a.dev,affd5e1204871843ebb8", "vc-domain-verify=sign.alvin.is-a.dev,2563e8f2f9edc85132ac", "vc-domain-verify=www.sign.alvin.is-a.dev,94900e209df86ce94741" - ] + ], + "bluesky": "did=did:plc:jkk7sl4llede4zzj2ctgkwsc" } } diff --git a/domains/catto24.json b/domains/catto24.json index 5770baa171..3426c43e9b 100644 --- a/domains/catto24.json +++ b/domains/catto24.json @@ -8,6 +8,7 @@ "CNAME": "catto24.github.io" }, "services": { - "discord": "dh=cb090910b5977bb43674000fab99c3a76492ac78" + "discord": "dh=cb090910b5977bb43674000fab99c3a76492ac78", + "bluesky": "did=did:plc:whzff4s3db6taso3s43ylrou" } } diff --git a/domains/clyron.json b/domains/clyron.json index 3e2362aca9..4d2573d476 100644 --- a/domains/clyron.json +++ b/domains/clyron.json @@ -7,6 +7,7 @@ "CNAME": "theclyron.github.io" }, "services": { - "discord": "dh=08fd1efb158b657de5293ec643a8426a20a93ede" + "discord": "dh=08fd1efb158b657de5293ec643a8426a20a93ede", + "bluesky": "did=did:plc:fqvzbqsjzjkl4o66rfp6cgk3" } } diff --git a/domains/crischutu07.json b/domains/crischutu07.json index ebb99d672e..e7b3cd31be 100644 --- a/domains/crischutu07.json +++ b/domains/crischutu07.json @@ -14,6 +14,7 @@ "TXT": "v=spf1 include:spf.improvmx.com ~all" }, "services": { - "discord": "dh=fffa03e2584e730d2c0166aaa6fe846542439b19" + "discord": "dh=fffa03e2584e730d2c0166aaa6fe846542439b19", + "bluesky": "did=did:plc:tfpfqi3qewuc5ugaipb57waa" } } diff --git a/domains/exyxz.json b/domains/exyxz.json index 13fd6f3ec3..1870a5f86b 100644 --- a/domains/exyxz.json +++ b/domains/exyxz.json @@ -8,6 +8,7 @@ "CNAME": "exyxz.github.io" }, "services": { - "discord": "dh=529be62f885915368b4b5c20beaef95a1c55ea98" + "discord": "dh=529be62f885915368b4b5c20beaef95a1c55ea98", + "bluesky": "did=did:plc:73r55srxmmlhhiof7fnllisy" } } diff --git a/domains/hcj.json b/domains/hcj.json index 0f121eae3f..a1c788a2c2 100644 --- a/domains/hcj.json +++ b/domains/hcj.json @@ -8,6 +8,7 @@ }, "services": { "discord": "dh=4d34d136feda8f0fade8d9cbf34cfb3ff0adee15", - "vercel": "vc-domain-verify=hcj.is-a.dev,010396202f45aacdad27" + "vercel": "vc-domain-verify=hcj.is-a.dev,010396202f45aacdad27", + "bluesky": "did:plc:5f2c6awh4ffekm7srmi4d6zg" } } diff --git a/domains/horibyte.json b/domains/horibyte.json index 825aa14bbe..1e48cf7063 100644 --- a/domains/horibyte.json +++ b/domains/horibyte.json @@ -5,5 +5,8 @@ }, "records": { "CNAME": "horibyte.github.io" + }, + "services": { + "bluesky": "did=did:plc:5ls3iv54vrppjxbs5ztocd75" } } diff --git a/domains/jumanji.json b/domains/jumanji.json index bb630843be..6f93e223c1 100644 --- a/domains/jumanji.json +++ b/domains/jumanji.json @@ -10,6 +10,7 @@ }, "services": { "discord": "dh=aa51fc97861c871fc4daece76efa42c15712f116", - "vercel": "vc-domain-verify=jumanji.is-a.dev,291766e76a7ab5de1bc7" + "vercel": "vc-domain-verify=jumanji.is-a.dev,291766e76a7ab5de1bc7", + "bluesky": "did=did:plc:nrjpabfv3zoxd6kiwr6fs4lq" } } diff --git a/domains/lua.json b/domains/lua.json index a0e730fc95..4170b6faff 100644 --- a/domains/lua.json +++ b/domains/lua.json @@ -9,6 +9,7 @@ "A": ["75.119.201.51"] }, "services": { - "discord": "dh=970cb15c19a813efa00124e99f198cbac7942338" + "discord": "dh=970cb15c19a813efa00124e99f198cbac7942338", + "bluesky": "did=did:plc:j7iap5lpvblnrr7lygisgjzp" } } diff --git a/domains/luihh.json b/domains/luihh.json index d5f597b65d..087970c69f 100644 --- a/domains/luihh.json +++ b/domains/luihh.json @@ -20,6 +20,7 @@ "proxied": true, "services": { "discord": "dh=81d234bda025f0796690ab6cf411be3a6b6c73c2", - "vercel": "vc-domain-verify=luihh.is-a.dev,918089867ac61f642dfc" + "vercel": "vc-domain-verify=luihh.is-a.dev,918089867ac61f642dfc", + "bluesky": "did=did:plc:nkzlgllahrw2v2y6p4inqx6t" } } diff --git a/domains/lumi.json b/domains/lumi.json index 694b6805a1..0559aaf19a 100644 --- a/domains/lumi.json +++ b/domains/lumi.json @@ -9,6 +9,7 @@ "TXT": "v=spf1 include:spf.improvmx.com ~all" }, "services": { - "discord": "dh=e00668e963ac416881a25e0bb5f87429a5eb0792" + "discord": "dh=e00668e963ac416881a25e0bb5f87429a5eb0792", + "bluesky": "did=did:plc:c6m5rghb7tkmf5isd3pqjpbt" } } diff --git a/domains/narasima.json b/domains/narasima.json index 991187ab45..bd554bfe74 100644 --- a/domains/narasima.json +++ b/domains/narasima.json @@ -11,6 +11,7 @@ }, "services": { "discord": "dh=d54feeb331611626de2134ef368bdcf7691cbbb3", - "vercel": "vc-domain-verify=blog.narasima.is-a.dev,f77f79e5650f4790387a" + "vercel": "vc-domain-verify=blog.narasima.is-a.dev,f77f79e5650f4790387a", + "bluesky": "did=did:plc:u5uxl7mjlywolajtgso2ouoe" } } diff --git a/domains/notcoded.json b/domains/notcoded.json index c062efcd32..2724f91793 100644 --- a/domains/notcoded.json +++ b/domains/notcoded.json @@ -8,6 +8,7 @@ "CNAME": "not-coded.github.io" }, "services": { - "discord": "dh=0a6a5afd3a6ee9b2709a43a77e6679a2e9969384" + "discord": "dh=0a6a5afd3a6ee9b2709a43a77e6679a2e9969384", + "bluesky": "did=did:plc:hvgfiqmdl5sqcba2453dfpxe" } } diff --git a/domains/priyanshu.json b/domains/priyanshu.json index 59659f8b9f..415587b407 100644 --- a/domains/priyanshu.json +++ b/domains/priyanshu.json @@ -8,6 +8,7 @@ "CNAME": "priyanshu.pages.dev" }, "services": { - "discord": "dh=4784b7e772166e35d7f9a41207e1ddf7e3d57f82" + "discord": "dh=4784b7e772166e35d7f9a41207e1ddf7e3d57f82", + "bluesky": "did=did:plc:psimj7hgshwoets2jvd6caib" } } diff --git a/domains/raccoon.json b/domains/raccoon.json index f3eed89213..8d1a60804a 100644 --- a/domains/raccoon.json +++ b/domains/raccoon.json @@ -7,6 +7,7 @@ "CNAME": "nilsraccoon.github.io" }, "services": { - "discord": "dh=e9381b84c8007443b186820d32a3797bd8fa537d" + "discord": "dh=e9381b84c8007443b186820d32a3797bd8fa537d", + "bluesky": "did=did:plc:25w7vwbzb2e3h7cnflqskp37" } } diff --git a/domains/thelamplighter.json b/domains/thelamplighter.json index 69a55f50d3..3bf6656c86 100644 --- a/domains/thelamplighter.json +++ b/domains/thelamplighter.json @@ -5,5 +5,8 @@ }, "records": { "URL": "https://github.com/thelamplighter-0" + }, + "services": { + "bluesky": "did=did:plc:g3ej5yewgi7ee7uipfzyrczc" } } diff --git a/tests/domains.test.js b/tests/domains.test.js index 8f9c1fd5e2..28fa2b5b6b 100644 --- a/tests/domains.test.js +++ b/tests/domains.test.js @@ -121,6 +121,13 @@ t("Disallow nested subdomains when parent has specific service records", (t) => `${file}: Nested subdomain "_vercel.${subdomain}" should not exist when services.vercel is present` ); } + + if (data?.services?.bluesky) { + t.false( + files.includes(`_atproto.${file}`), + `${file}: Nested subdomain "_atproto.${subdomain}" should not exist when services.bluesky is present` + ); + } }); t.pass(); diff --git a/tests/json.test.js b/tests/json.test.js index 7b58c0fb77..fa81c0cb9a 100644 --- a/tests/json.test.js +++ b/tests/json.test.js @@ -164,6 +164,10 @@ async function processFile(file, t) { `${file}: services.vercel should be an array or string` ); } + + if (data.services.bluesky) { + t.true(typeof data.services.bluesky === "string", `${file}: services.bluesky should be a string`); + } } for (const field of blockedFields) { diff --git a/tests/records.test.js b/tests/records.test.js index d2cd18c008..3710c64ee6 100644 --- a/tests/records.test.js +++ b/tests/records.test.js @@ -356,6 +356,12 @@ t("All files should have valid service records", (t) => { t.true(value.length >= 48, `${file}: Vercel service token should be 48 characters or longer`); }); } + + const atprotoRegex = /^did=did:plc:[a-z0-9]{24}$/; + + if (data?.services?.bluesky) { + t.true(atprotoRegex.test(data.services.bluesky), `${file}: Invalid Bluesky service record format`); + } }); t.pass();