Mirror from bluesky-social/pds

Compare changes

Choose any two refs to compare.

+1 -1
.github/workflows/build-and-push-ghcr.yaml
··· 3 3 push: 4 4 branches: 5 5 - main 6 - - pdsv2 6 + - next 7 7 tags: 8 8 - v* 9 9 env:
-2
ACCOUNT_MIGRATION.md
··· 1 1 # Account Migration 2 2 3 - **Update May 2025:** An updated guide to account migration is now [part of the atproto specifications](https://atproto.com/guides/account-migration). There is also [a blog post available](https://whtwnd.com/bnewbold.net/3l5ii332pf32u) which describes how to do an account migration using a command-line tool (`goat`). 4 - 5 3 ### ⚠️ Warning ⚠️ ️ 6 4 Account migration is a potentially destructive operation. Part of the operation involves signing away your old PDS's ability to make updates to your DID. If something goes wrong, you could be permanently locked out of your account, and Bluesky will not be able to help you recover it. 7 5
-8
README.md
··· 228 228 229 229 _Note: Your PDS will need to be restarted with those variables. This varies depending on your setup. If you followed this installation guide, run `systemctl restart pds`. You might need to restart the server or recreate the container, depending on what you are using._ 230 230 231 - #### Common SMTP issues 232 - 233 - If you find that your test messages using cURL or other sources go out correctly, but you are not receiving emails from your PDS, you may need to URL encode your username and password on `/pds/pds.env` and restart the PDS service. 234 - 235 - If the username and/or password contain special characters, the special characters will need to be [percent encoded](https://en.wikipedia.org/wiki/Percent-encoding). For some email services, the username will contain an extra `@` symbol that will also need to be percent encoded. For example, the URL `user&name@oci:p@ssword@smtphost:465` after percent encoding for the username and password fields would become `user%26name%40oci:p%40ssword@smtphost:465`. 236 - 237 - If you are migrating an account, Bluesky's UI will ask you to confirm your email address. The confirmation code email is meant to come from your PDS. If you are encountering issues with SMTP and want to confirm the address before solving it, you can find the confirmation code on the `email_token` table on `accounts.sqlite`. 238 - 239 231 ### Logging 240 232 241 233 By default, logs from the PDS are printed to `stdout` and end up in Docker's log. You can browse them by running:
+7 -1
installer.sh
··· 31 31 openssl 32 32 sqlite3 33 33 xxd 34 - jq 35 34 " 36 35 # Docker packages. 37 36 REQUIRED_DOCKER_PACKAGES=" ··· 215 214 fi 216 215 217 216 # Admin email 217 + if [[ -z "${PDS_ADMIN_EMAIL}" ]]; then 218 + read -p "Enter an admin email address (e.g. you@example.com): " PDS_ADMIN_EMAIL 219 + fi 220 + if [[ -z "${PDS_ADMIN_EMAIL}" ]]; then 221 + usage "No admin email specified" 222 + fi 223 + 218 224 if [[ -z "${PDS_ADMIN_EMAIL}" ]]; then 219 225 read -p "Enter an admin email address (e.g. you@example.com): " PDS_ADMIN_EMAIL 220 226 fi
+1 -1
service/package.json
··· 7 7 "main": "index.js", 8 8 "license": "MIT", 9 9 "dependencies": { 10 - "@atproto/pds": "0.4.138" 10 + "@atproto/pds": "0.4.166" 11 11 } 12 12 }
+77 -64
service/pnpm-lock.yaml
··· 6 6 7 7 dependencies: 8 8 '@atproto/pds': 9 - specifier: 0.4.138 10 - version: 0.4.138 9 + specifier: 0.4.166 10 + version: 0.4.166 11 11 12 12 packages: 13 13 ··· 42 42 resolution: {integrity: sha512-0bRbAlI8Ayh03wRwncAMEAyUKtZ+AuTS1jgPrfym1WVOAOiottI/ZmgccqLl6w5MbxVcClNQF7WYGKvGwGoIhA==} 43 43 dev: false 44 44 45 - /@atproto-labs/xrpc-utils@0.0.14: 46 - resolution: {integrity: sha512-/f0Dhzi08w3Oqv38wdwQ5bw238GbxhYIcxg08kVReEMTlkyRDC6H5RuqHf8Ff9J3FKqjKHGdxaOdrPNM1hCgeQ==} 45 + /@atproto-labs/xrpc-utils@0.0.18: 46 + resolution: {integrity: sha512-Cwrlx2JcLe0jxCK8b3GCT3HRGaH3yPhyyt+3n4JykJapCaGBKqa6FHGs9hK2Fx6lOyPF7TnV5qUPUsJ1qGEUVA==} 47 47 dependencies: 48 - '@atproto/xrpc': 0.7.0 49 - '@atproto/xrpc-server': 0.7.18 48 + '@atproto/xrpc': 0.7.1 49 + '@atproto/xrpc-server': 0.9.1 50 50 transitivePeerDependencies: 51 51 - bufferutil 52 52 - supports-color 53 53 - utf-8-validate 54 54 dev: false 55 55 56 - /@atproto/api@0.15.8: 57 - resolution: {integrity: sha512-PsCgmV4zPjN8VuJMruxqauhn88PuS0b8t2Xsjl4617+bCPpY513jVlxgNH/XExxO7TSVvJM7EzdLY4o3fqh/xQ==} 56 + /@atproto/api@0.16.2: 57 + resolution: {integrity: sha512-sSTg31J8ws8DNaoiizp+/uJideRxRaJsq+Nyl8rnSxGw0w3oCvoeRU19iRWh2t0jZEmiRJAGkveGu23NKmPYEQ==} 58 58 dependencies: 59 59 '@atproto/common-web': 0.4.2 60 - '@atproto/lexicon': 0.4.11 60 + '@atproto/lexicon': 0.4.12 61 61 '@atproto/syntax': 0.4.0 62 - '@atproto/xrpc': 0.7.0 62 + '@atproto/xrpc': 0.7.1 63 63 await-lock: 2.2.2 64 64 multiformats: 9.9.0 65 65 tlds: 1.250.0 66 66 zod: 3.23.8 67 67 dev: false 68 68 69 - /@atproto/aws@0.2.21: 70 - resolution: {integrity: sha512-bosExZ3YdFjOehNBcNWsC2mZBrAVLO8Ut/JquypXSahFeeXZP/9rd9F1VGf+vAmjFEKagHXQCb6CRFfJyN+I7A==} 69 + /@atproto/aws@0.2.25: 70 + resolution: {integrity: sha512-LT4uuda2mjXz2WT4xo7g2aWmWKl+JWusGzscqQpOlD/RFGFXKDmUcVWLVPKY+9Pys2F7X6tyDlm2aUx+/dYdYA==} 71 71 engines: {node: '>=18.7.0'} 72 72 dependencies: 73 73 '@atproto/common': 0.4.11 74 74 '@atproto/crypto': 0.4.4 75 - '@atproto/repo': 0.8.1 75 + '@atproto/repo': 0.8.5 76 76 '@aws-sdk/client-cloudfront': 3.515.0 77 77 '@aws-sdk/client-kms': 3.515.0 78 78 '@aws-sdk/client-s3': 3.515.0 ··· 134 134 uint8arrays: 3.0.0 135 135 dev: false 136 136 137 + /@atproto/did@0.1.5: 138 + resolution: {integrity: sha512-8+1D08QdGE5TF0bB0vV8HLVrVZJeLNITpRTUVEoABNMRaUS7CoYSVb0+JNQDeJIVmqMjOL8dOjvCUDkp3gEaGQ==} 139 + dependencies: 140 + zod: 3.23.8 141 + dev: false 142 + 137 143 /@atproto/identity@0.4.8: 138 144 resolution: {integrity: sha512-Z0sLnJ87SeNdAifT+rqpgE1Rc3layMMW25gfWNo4u40RGuRODbdfAZlTwBSU2r+Vk45hU+iE+xeQspfednCEnA==} 139 145 engines: {node: '>=18.7.0'} ··· 142 148 '@atproto/crypto': 0.4.4 143 149 dev: false 144 150 145 - /@atproto/jwk-jose@0.1.6: 146 - resolution: {integrity: sha512-r4DGMvvmazy6CxqAcnplpUxvp6Vd8UwKxQBZRpmm1aNsVonf5qj1yeDkECTiwoe/FPbvtdamlzClB3UZc7Yb5w==} 151 + /@atproto/jwk-jose@0.1.9: 152 + resolution: {integrity: sha512-HT9GcUe6htDxI5OSYXWdeS6QZ9lpuDDvJk508ppi8a48E/1f8eumoM0QhgbFRF9IKAnnFrtnZDOAvljQzFKwwQ==} 147 153 dependencies: 148 - '@atproto/jwk': 0.1.5 154 + '@atproto/jwk': 0.4.0 149 155 jose: 5.2.2 150 156 dev: false 151 157 152 - /@atproto/jwk@0.1.5: 153 - resolution: {integrity: sha512-OzZFLhX41TOcMeanP3aZlL5bLeaUIZT15MI4aU5cwflNq/rwpGOpz3uwDjZc8ytgUjuTQ8LabSz5jMmwoTSWFg==} 158 + /@atproto/jwk@0.4.0: 159 + resolution: {integrity: sha512-tvp4iZrzqEzKCeTOKz50/o6WdsZzOuWmWjF6On5QAp04fLwLpsFu2Hixgx/lA1KBO0O4sns7YSGcAqSSX6Rdog==} 154 160 dependencies: 155 161 multiformats: 9.9.0 156 162 zod: 3.23.8 157 163 dev: false 158 164 159 - /@atproto/lexicon@0.4.11: 160 - resolution: {integrity: sha512-btefdnvNz2Ao2I+qbmj0F06HC8IlrM/IBz6qOBS50r0S6uDf5tOO+Mv2tSVdimFkdzyDdLtBI1sV36ONxz2cOw==} 165 + /@atproto/lexicon@0.4.12: 166 + resolution: {integrity: sha512-fcEvEQ1GpQYF5igZ4IZjPWEoWVpsEF22L9RexxLS3ptfySXLflEyH384e7HITzO/73McDeaJx3lqHIuqn9ulnw==} 161 167 dependencies: 162 168 '@atproto/common-web': 0.4.2 163 169 '@atproto/syntax': 0.4.0 ··· 166 172 zod: 3.23.8 167 173 dev: false 168 174 169 - /@atproto/oauth-provider-api@0.1.2: 170 - resolution: {integrity: sha512-tNAuMrE6D3696euavxo1+Jh7Re0PPwJstbyY8SrdVPXgKJh/LrbpKUKiPNW/p5KyVfRs2tWeAxy+ReESu6SmXA==} 175 + /@atproto/oauth-provider-api@0.2.0: 176 + resolution: {integrity: sha512-u18VRCDuz5BloUQKbvTISjQk7CgpDI1hf3leoJ7ADOAo8oW71QZD0tsWDX81R2uB66mKZHptjGSSVxxqpZFipQ==} 171 177 dependencies: 172 - '@atproto/jwk': 0.1.5 173 - '@atproto/oauth-types': 0.2.7 178 + '@atproto/jwk': 0.4.0 179 + '@atproto/oauth-types': 0.4.0 174 180 dev: false 175 181 176 - /@atproto/oauth-provider-frontend@0.1.4: 177 - resolution: {integrity: sha512-TLKL5lTmSieHx7+3RVIx7rIxRPP1SNCwzzdTvYB46yd1XrGHdPU//M6CP5OZ1BvcxF6H4JXIkOSWvFseol+gOw==} 182 + /@atproto/oauth-provider-frontend@0.1.11: 183 + resolution: {integrity: sha512-MvPUI+vh8a8UWmpAV8VS2qrdJ/B6l75qDQX1z6vF1YkPR1d9SLEdOYx/O26g5ZyuN+Mk00OBdOSfjvON/UOxQA==} 178 184 engines: {node: '>=18.7.0'} 179 185 optionalDependencies: 180 - '@atproto/oauth-provider-api': 0.1.2 186 + '@atproto/oauth-provider-api': 0.2.0 181 187 dev: false 182 188 183 - /@atproto/oauth-provider-ui@0.1.5: 184 - resolution: {integrity: sha512-pW0Vx3kvIWH1Mu3SOImNHP9JbmhSj2e3ChDvtfXCWI1oC03fiaMlJfdxrx9Plq5Z+DajnCzPzrf1Lvbopjf94Q==} 189 + /@atproto/oauth-provider-ui@0.2.0: 190 + resolution: {integrity: sha512-v4rzz3C8i2NBqxycWWDTeosHtv6B9+EW4ZCq9Il6thmHdtT2CmB07R5Ia7zQ1n7lylxI6mC9JqA9CLis0uLz+Q==} 185 191 engines: {node: '>=18.7.0'} 186 192 optionalDependencies: 187 - '@atproto/oauth-provider-api': 0.1.2 193 + '@atproto/oauth-provider-api': 0.2.0 188 194 dev: false 189 195 190 - /@atproto/oauth-provider@0.7.7: 191 - resolution: {integrity: sha512-ElphzmOjw1hr42HN4dD6sMAQFtpTkaJ8bBDAsbL9YBVJDEGhmHsF3Ye8mDUO4nhEdg7PUTWiCzXyqnaorAjiTA==} 196 + /@atproto/oauth-provider@0.10.0: 197 + resolution: {integrity: sha512-WbDaMC/9Zd4oslA4pPvf7ozum0YAQRxNspYpEauXtJ/bjVxqViKgV158jnPhDbYfo62NkxSuSaUkTV116U/VBg==} 192 198 engines: {node: '>=18.7.0'} 193 199 dependencies: 194 200 '@atproto-labs/fetch': 0.2.3 ··· 197 203 '@atproto-labs/simple-store': 0.2.0 198 204 '@atproto-labs/simple-store-memory': 0.1.3 199 205 '@atproto/common': 0.4.11 200 - '@atproto/jwk': 0.1.5 201 - '@atproto/jwk-jose': 0.1.6 202 - '@atproto/oauth-provider-api': 0.1.2 203 - '@atproto/oauth-provider-frontend': 0.1.4 204 - '@atproto/oauth-provider-ui': 0.1.5 205 - '@atproto/oauth-types': 0.2.7 206 + '@atproto/did': 0.1.5 207 + '@atproto/jwk': 0.4.0 208 + '@atproto/jwk-jose': 0.1.9 209 + '@atproto/oauth-provider-api': 0.2.0 210 + '@atproto/oauth-provider-frontend': 0.1.11 211 + '@atproto/oauth-provider-ui': 0.2.0 212 + '@atproto/oauth-scopes': 0.0.1 213 + '@atproto/oauth-types': 0.4.0 206 214 '@atproto/syntax': 0.4.0 207 215 '@hapi/accept': 6.0.3 208 216 '@hapi/address': 5.1.1 209 217 '@hapi/bourne': 3.0.0 210 218 '@hapi/content': 6.0.0 211 - cookie: 0.6.0 219 + cookie: 0.7.2 212 220 disposable-email-domains-js: 1.5.0 213 221 forwarded: 0.2.0 214 222 http-errors: 2.0.0 ··· 219 227 - supports-color 220 228 dev: false 221 229 222 - /@atproto/oauth-types@0.2.7: 223 - resolution: {integrity: sha512-2SlDveiSI0oowC+sfuNd/npV8jw/FhokSS26qyUyldTg1g9ZlhxXUfMP4IZOPeZcVn9EszzQRHs1H9ZJqVQIew==} 230 + /@atproto/oauth-scopes@0.0.1: 231 + resolution: {integrity: sha512-9IGgwM0KrWUwRTg02o4GKZaoKJLOkFwtkq2i39pYQxqJm18jvEvadxW/sR1A5f9f2vbTZtECgIziU5hdd01U5Q==} 232 + dev: false 233 + 234 + /@atproto/oauth-types@0.4.0: 235 + resolution: {integrity: sha512-FrRH9JsPw9H4JxfPDrbrI+pB102tbHTygajfHay7xwz78HPOjSbWPRgWW2hYS4w8vDYdB3PYbBj1jPoKetW7LA==} 224 236 dependencies: 225 - '@atproto/jwk': 0.1.5 237 + '@atproto/jwk': 0.4.0 226 238 zod: 3.23.8 227 239 dev: false 228 240 229 - /@atproto/pds@0.4.138: 230 - resolution: {integrity: sha512-WLzDhmguTgs2wQNKoGxCbpKNegDnRiemSslenMbPrB7kSiXYj+XZobLyoIXHv1EnAd2pbThwNEL8z8EfkM0mDg==} 241 + /@atproto/pds@0.4.166: 242 + resolution: {integrity: sha512-LwLiLQNOZsZ4LgD4qmtWf3W5FJEaTA3Bi3Y1x79TXrBfcvcmIoNYBUE0WOLmDFfLyp44caODqS6HCLvqc11T7g==} 231 243 engines: {node: '>=18.7.0'} 232 244 dependencies: 233 245 '@atproto-labs/fetch-node': 0.1.9 234 - '@atproto-labs/xrpc-utils': 0.0.14 235 - '@atproto/api': 0.15.8 236 - '@atproto/aws': 0.2.21 246 + '@atproto-labs/xrpc-utils': 0.0.18 247 + '@atproto/api': 0.16.2 248 + '@atproto/aws': 0.2.25 237 249 '@atproto/common': 0.4.11 238 250 '@atproto/crypto': 0.4.4 239 251 '@atproto/identity': 0.4.8 240 - '@atproto/lexicon': 0.4.11 241 - '@atproto/oauth-provider': 0.7.7 242 - '@atproto/repo': 0.8.1 252 + '@atproto/lexicon': 0.4.12 253 + '@atproto/oauth-provider': 0.10.0 254 + '@atproto/oauth-scopes': 0.0.1 255 + '@atproto/repo': 0.8.5 243 256 '@atproto/syntax': 0.4.0 244 - '@atproto/xrpc': 0.7.0 245 - '@atproto/xrpc-server': 0.7.18 257 + '@atproto/xrpc': 0.7.1 258 + '@atproto/xrpc-server': 0.9.1 246 259 '@did-plc/lib': 0.0.4 247 260 '@hapi/address': 5.1.1 248 261 better-sqlite3: 10.1.0 ··· 279 292 - utf-8-validate 280 293 dev: false 281 294 282 - /@atproto/repo@0.8.1: 283 - resolution: {integrity: sha512-d1NtHhXYJVJlFVI6mbVOUnpB0rnhqxPnZcALkJoYJjaDPVr4NNqRFAtrwb+GHzxT6DhijoXYQf24pKGfEFDd4g==} 295 + /@atproto/repo@0.8.5: 296 + resolution: {integrity: sha512-QZ4UWBWDyPMXgPhktmaRYRyCXIw7lIEAyGtaFy7UmCPpJ5TtFKw3GhGrEiNz/fY3/6lrkdDj44/Tzkud/eP/VQ==} 284 297 engines: {node: '>=18.7.0'} 285 298 dependencies: 286 299 '@atproto/common': 0.4.11 287 300 '@atproto/common-web': 0.4.2 288 301 '@atproto/crypto': 0.4.4 289 - '@atproto/lexicon': 0.4.11 302 + '@atproto/lexicon': 0.4.12 290 303 '@ipld/dag-cbor': 7.0.3 291 304 multiformats: 9.9.0 292 305 uint8arrays: 3.0.0 ··· 298 311 resolution: {integrity: sha512-b9y5ceHS8YKOfP3mdKmwAx5yVj9294UN7FG2XzP6V5aKUdFazEYRnR9m5n5ZQFKa3GNvz7de9guZCJ/sUTcOAA==} 299 312 dev: false 300 313 301 - /@atproto/xrpc-server@0.7.18: 302 - resolution: {integrity: sha512-kjlAsI+UNbbm6AK3Y5Hb4BJ7VQHNKiYYu2kX5vhZJZHO8qfO40GPYYb/2TknZV8IG6fDPBQhUpcDRolI86sgag==} 314 + /@atproto/xrpc-server@0.9.1: 315 + resolution: {integrity: sha512-AJfxsKrZgKL/5362Rc0oUEjlgpDCmY/soeyLHHjid8J6clbErAdJVCuFwW4T40aHGFY1J13a29ucwbSfOROx6w==} 303 316 engines: {node: '>=18.7.0'} 304 317 dependencies: 305 318 '@atproto/common': 0.4.11 306 319 '@atproto/crypto': 0.4.4 307 - '@atproto/lexicon': 0.4.11 308 - '@atproto/xrpc': 0.7.0 320 + '@atproto/lexicon': 0.4.12 321 + '@atproto/xrpc': 0.7.1 309 322 cbor-x: 1.5.8 310 323 express: 4.18.2 311 324 http-errors: 2.0.0 ··· 320 333 - utf-8-validate 321 334 dev: false 322 335 323 - /@atproto/xrpc@0.7.0: 324 - resolution: {integrity: sha512-SfhP9dGx2qclaScFDb58Jnrmim5nk4geZXCqg6sB0I/KZhZEkr9iIx1hLCp+sxkIfEsmEJjeWO4B0rjUIJW5cw==} 336 + /@atproto/xrpc@0.7.1: 337 + resolution: {integrity: sha512-ANHEzlskYlMEdH18m+Itp3a8d0pEJao2qoDybDoMupTnoeNkya4VKIaOgAi6ERQnqatBBZyn9asW+7rJmSt/8g==} 325 338 dependencies: 326 - '@atproto/lexicon': 0.4.11 339 + '@atproto/lexicon': 0.4.12 327 340 zod: 3.23.8 328 341 dev: false 329 342 ··· 2186 2199 engines: {node: '>= 0.6'} 2187 2200 dev: false 2188 2201 2189 - /cookie@0.6.0: 2190 - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 2202 + /cookie@0.7.2: 2203 + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} 2191 2204 engines: {node: '>= 0.6'} 2192 2205 dev: false 2193 2206