Commit Graph

484 Commits

Author SHA1 Message Date
Foysal Ahamed 3ad0519961 Ozone team member manager (#2460)
* 🚧 Proposal for moderator manager lexicons

*  CRUD for moderator management works

*  Add profile view to moderator user list

*  Seed mod users from env var to db

*  Adjust tests

*  Update snapshots

*  Fix type and lexicon token issues

*  Add pagination to listUsers

*  Use sort order in pagination

* 📝 Change error name

*  Update snapshots

*  seed mods in sync to avoid re-order

* 🧹 Remove unnecessary import

* 🐛 Re-run codegen

* 🧹 Some cleanup

* 🧹 Cleanup unnecessary properties on auth-verifier

*  Rename terminologies from moderator to team and member

* 🧹 Cleanup

*  Allow admin tokens to update/add member

*  Delete members in transaction

*  Use db transactions and move profile hydration to the service layer

*  Add test for addMember endpoint

* 🐛 wait on adding admin DID

*  Do not allow updating/deleting service owner and always give service owner admin access

* 🧹 Cleanup

*  Make timestamp columns non null

* 🧹 Cleanup

*  Update mod role definition in getConfig

*  Deletion and update guards

* 🐛 don't prefill service did

* 📝 Add changeset
2024-06-18 18:47:20 -04:00
github-actions[bot] 5f45e7df48 Version packages (#2590)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-18 13:55:53 -07:00
github-actions[bot] 8b4f585293 Version packages (#2588)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-18 15:59:23 -04:00
Matthieu Sieben a8d6c11235 🚧 OAuth2 - Authorization Server (#2482)
* chore(deps): update zod

* chore(deps): update pino to match entryway version

* chore(tsconfig): remove truncation of types through noErrorTruncation

* add support for DPoP token type when logging

* fix(bsky): JSON.parse does not return value of type JSON

* fix(pds): add res property to ReqCtx

* fix(pds): properly type getPreferences return value

* chore(tsconfig): disable noFallthroughCasesInSwitch

* refactor(pds): move tracer config in own file

* feat(dev-env): start with "pnpm dev"

* feat(oauth): add oauth provider & client libs

* feat(pds): add oauth provider

* chore: changeset

* feat: various fixes and improvements

* chore(deps): update better-sqlite3 to version 10.0.0 for node 22 compatibility

* chore(deps): drop unused tslib

* fix(did): normalize service IDs before looking for duplicates

* fix(did): avoid minor type casting

* fix(did): improve argument validation

* fix(fetch): explicit use of negation around number comparison

* fix(oauth-provider): improve argument validation

* feat(did): add ATPROTO specific "isAtprotoDidWeb" method

* feat(rollup-plugin-bundle-manifest): add readme

* feat(lint): add eqeqeq rule (only allow == and != with null)

* fix(oauth-client-browser): typo in gitignore

* fix(oauth-provider): properly name error class file

* fix(oauth-provider): remove un-necessary useMemo

* fix(did-resolver): properly build did:web document url

* fix(did-resolver): remove unused types

* fix(fetch): remove unused utils

* fix(pds): remove unused script and dependency

* fix(oauth-provider): simplify isSubPath util

* fix(oauth-provider): add InvalidRedirectUriError static constructor

* fix(jwk): improve JWT validation to provide better error messages and distinguish between signed and unsigned tokens

* fix(pds): use "debug" log level for fetch method

* fix(pds): allow access tokens to contain an unknown "typ" claim (with the exception of "dpop+jwt")

* fix(jwk): remove un-necessary code

* fix(pds): account for whitespace chars when checking JSON

* fix(pds): remove oauth specific config

* fix(pds): run all write queries through transaction or executeWithRetry
fix(pds): remove outdated comments
fix(pds): rename used_refresh_token columns & added primary key
fix(pds): run cleanup task through backgroundQueue
fix(pds): add device.id foreign key to device_account
fix(pds): add comment on cleanup of used_refresh_token
fix(pds): add primary key on device_account

* fix(oauth-provider:time): simplify constantTime util

* fix(pds): rename disableSsrf into disableSsrfProtection

* fix(oauth-client-react-native): remove incomplete package

* refactor(pds): remove status & active from ActorAccount

* fix(pds): invalidate all oauth tokens on takedown

* fix(oauth-provider): enforce token expiry

* fix(pds): properly support deactivated accounts

* perf(pds:db): allow transaction function to be sync

* refactor(psq:account-manager): expose only query builders & data transformations utils from helpers

* fix(oauth-provider): imports from self

* fix(ci): add nested packages to build artifacts

* style(fetch): rename TODO into @TODO

* style(rollup-plugin-bundle-manifest): remove "TODO" from comment

* style(oauth-client): rename TODO into @TODO

* style(oauth-provider): rename TODO into @TODO

* refactor(oauth-client): remove "OAuth" prefix from types

* fix(oauth-client-browser): better type SessionListener

* style(oauth): rename TODO into @TODO

* fix(oauth-provider): enforce provider max session age

* fix(oauth-provider): check authentication parameters against all client metadata

* fix(api): tests

* fix(pds): remove .js from imports for tests

* fix(pds): change account status to match tests

* chore(deps): make all packages depend on the same zod version

* fix(common-web): remove un-necessary binding of Checkable to "zod"

* refactor(jwk): infer jwt schema from refinement definition

* fix(handle-resolver): allow resolution errors to propagate
docs(handle-resolver): better handling of DNS resolution errors
fix(handle-resolver): properly handle DOH responses

* fix(did): service endpoint arrays must contain "one or more" element

* refactor(pipe): simplify implementation

* fix(pds): add missing DB indexes

* feat(oauth): Resolve Authorization Server URI through Protected Resource Metadata

* style:(oauth-client): import order

* docs(oauth-provider:redirect-uri): add reference url

* feat(oauth): implement "OAuth Client ID Metadata Document" from draft-parecki-oauth-client-id-metadata-document-latest internet draft

* feat(oauth-client): backport changes from feat-oauth-client

* docs(simple-store): improve comments

* feat(lexicons): add iterable capabilities

* fix(pds): type error in dev mode

* feat(oauth-provider): improved error reporting

* fix(oauth-types): allow insecure issuer during tests

* fix(xrpc-server): allow upload of empty files

* fix: lint

* feat(fetch): keep request reference in errors
feat(fetch): utilities improvements

* fix(pds): allow more than one session token per user

* feat(ozone): improve env validation error messages

* fix(oauth-client): account for DPoP when checking for invalid_token errors

* fixup! feat(fetch): keep request reference in errors feat(fetch): utilities improvements

* fixup! feat(fetch): keep request reference in errors feat(fetch): utilities improvements

* fix(oauth): various validation fixes
feat(oauth): share client_id validation and parsing utilities between client & provider

* feat(dev-env): fix ozone port number

* fix(fetch-node): prevent fetch against invalid domain names

* fix(oauth-provider): add typings for psl dep

* feat(jwk): make type def compatible with TS 4.x

* fix(oauth): fixed various spec compliance
fix(oauth): return "sub" in refresh token response
fix(oauth): limit token validity for third party clients
fix(oauth): hide client image when not trusted

* fix(oauth): lint

* pds: switch changeset to patch, no breaking changes

* changeset and config for new oauth deps

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
2024-06-18 15:11:37 -04:00
github-actions[bot] 438dc8e0b0 Version packages (#2578)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-13 16:03:41 -05:00
github-actions[bot] 708217d6bf Version packages (#2574)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-11 12:40:45 -05:00
devin ivy 6e323fb6b5 Fix flaky tests surrounding ozone/pds (#2561)
fix flaky tests surrounding ozone/pds
2024-06-07 13:04:22 -04:00
github-actions[bot] b82efd5d53 Version packages (#2549)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-05 14:59:20 -04:00
github-actions[bot] 5441fbde9e Version packages (#2546)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-04 10:57:52 -05:00
github-actions[bot] c5d36d5ba2 Version packages (#2538)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-31 16:44:11 -05:00
github-actions[bot] 00d20494a8 Version packages (#2534)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-30 20:17:22 -04:00
github-actions[bot] d983063461 Version packages (#2529)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-28 11:00:27 -04:00
github-actions[bot] 8ce97d4245 Version packages (#2518)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-23 16:48:03 -05:00
github-actions[bot] 26356c48be Version packages (#2516)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-23 16:10:17 -05:00
github-actions[bot] d093892886 Version packages (#2513)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-23 12:05:58 -04:00
github-actions[bot] 9974e9ad5f Version packages (#2508)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-22 23:30:36 -04:00
Foysal Ahamed eeff39314d Add getLists endpoint to proxied routes via ozone (#2493)
*  Add getLists endpoint to proxied routes via ozone

*  Add tests for getLists via ozone

* insert takedown label manually

* ✏️ Fix typo in test

* 🧹 Cleanup

---------

Co-authored-by: dholms <dtholmgren@gmail.com>
2024-05-21 20:46:49 +02:00
github-actions[bot] a317116665 Version packages (#2502)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-20 13:31:34 -05:00
Daniel Holmgren 265ce86e15 Ozone chat integration (#2490)
* wip

* schema tweaks

* room -> chat

* missed one

* missed another

* deleted messages + incoming message settings

* add schemas for blocking users

* chat update schemas

* make updateUserSettings more generic

* fix dangling ref

* fix dangling refs

* mute chats & leave chats

* schema consistency, naming

* lexicon for updating chat read state

* dm lexicon updates, add batch send endpoint

* dm sender on deleted message

* Add codegen for temp lex

* lexicon: switch temp.dm to chat.bsky namespace, misc fixes

* lexicon: codegen

* lexicon: fix some chat/convo terminology

* lexicon: codegen

* moderator schemas

* codegen

* lexicon: consistency in chat lexicons

* lexicon: add chat to associated profile info

* add ref to updateActorAccess

* add annotation on convoView for disabled members

* codegen

* ozone lexicons

* scaffold routes

* hook up chat moderation routes to ozone

* add message subject for reports/events

* remove dm references from ozone schemas

* ensure report exists before serving getMessageContext

* 🐛 Fix typo in column name

* adjust before/after instead of throwing

* add dev script

* add dev-env introspection server

* hook up chat mod routes to pds & ozone

*  Add message ref subject in eventView def

* fix typo

* add chat reporting test

* fix test

* update dev-env chat did

* update dms server routes name

* pr feedback

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Foysal Ahamed <foysal@blueskyweb.xyz>
2024-05-15 18:52:47 -05:00
github-actions[bot] 69f0bb3b10 Version packages (#2486)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-13 14:43:51 -04:00
devin ivy d32f7215f6 Lexicon: add lexicons for chat.bsky namespace (#2485)
* wip

* schema tweaks

* room -> chat

* missed one

* missed another

* deleted messages + incoming message settings

* add schemas for blocking users

* chat update schemas

* make updateUserSettings more generic

* fix dangling ref

* fix dangling refs

* mute chats & leave chats

* schema consistency, naming

* lexicon for updating chat read state

* dm lexicon updates, add batch send endpoint

* dm sender on deleted message

* Add codegen for temp lex

* lexicon: switch temp.dm to chat.bsky namespace, misc fixes

* lexicon: codegen

* lexicon: fix some chat/convo terminology

* lexicon: codegen

* moderator schemas

* codegen

* lexicon: consistency in chat lexicons

* lexicon: add chat to associated profile info

* add ref to updateActorAccess

* add annotation on convoView for disabled members

* codegen

* remove dm references from ozone schemas

* lexicon: chat account deletion, data export, and profile state

* lexicon typo

* lexicon typo

* lexicon: mark chat senders as required

* add changeset

* appview: proper support for chat.bsky lexicons

---------

Co-authored-by: dholms <dtholmgren@gmail.com>
Co-authored-by: Eric Bailey <git@esb.lol>
2024-05-13 14:22:58 -04:00
github-actions[bot] 4184a65222 Version packages (#2476)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-10 12:11:48 -04:00
devin ivy 499fabe7b6 Appview: add chat details to profile views, chronological likes (#2471)
* update bsky protos

* appview: add associated chat deets to profile views, switch to sorted likes

* appview: test associated chat info on profile views

* tidy
2024-05-09 12:45:06 -04:00
github-actions[bot] bdd66bb4e1 Version packages (#2473)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-08 18:47:20 -07:00
Daniel Holmgren c812902107 Dev-env introspection server (#2470)
* add dev-env introspection server

* Update packages/dev-env/src/introspect.ts

Co-authored-by: devin ivy <devinivy@gmail.com>

* lost a bracket

---------

Co-authored-by: devin ivy <devinivy@gmail.com>
2024-05-08 16:31:17 -05:00
github-actions[bot] 5226cbcc16 Version packages (#2465)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-06 18:05:57 -04:00
Foysal Ahamed 1c616b023e Configure labeler service account in dev-env (#2363)
* 🚧 WIP attempting to make ozone work with local

*  Labeler service set up works

* Renmae account details for mod authority

* 🧹 Clean up createOzoneDid signature

* 🚨 Fix typedef

*  Adjust snapshot

*  Fix test with invite code

* 🚧 WIP

* 🚧 WIP

* 🚧 bring back test

* 🚧 bring back test

*  Update ozone snapshots

*  Update ozone snapshots
2024-05-01 17:06:45 +02:00
devin ivy 79f8e1e6f4 Appview: support alternate audiences on standard auth (#2458)
* appview: support alternate audiences on standard auth

* tidy
2024-04-30 14:56:37 -04:00
github-actions[bot] 651d4c2a34 Version packages (#2446)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-25 19:29:59 +02:00
github-actions[bot] b9e205ae01 Version packages (#2443)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-24 11:53:09 -05:00
Foysal Ahamed 6f1f54493e Detect language from record content if lang property is not set (#2301)
*  Detect language from record content if lang property is not set

*  Update test snapshots for auto detected language

*  Update pds test snapshots

*  Adjust test to use the right method

* 🧹 Make list override param optional

* 🧹 Fix import

* 🚨 fix linter issues

* ♻️ Use record type for getting text from record

*  process records for appview to pick it up

* 🧹 Cleanup
2024-04-18 20:15:39 +02:00
github-actions[bot] d0625be266 Version packages (#2422)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-18 09:45:44 -07:00
github-actions[bot] 32c97d4c8b Version packages (#2417)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-17 20:04:44 -04:00
github-actions[bot] 1074f43b4a Version packages (#2401)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-16 14:39:43 -04:00
bnewbold a40b054812 fix test errors in "relax restriction on handle length in PDS" (#2410)
* relax restriction on handle length in PDS.

* add test to validate restriction on handle length.

* make fmt

* resolve test issues with too-long handles

* attempt to resolve appview test issues with too-long handles

---------

Co-authored-by: itaru2622 <itaru2622@gmail.com>
2024-04-15 20:05:49 -07:00
github-actions[bot] 692d1b2cd8 Version packages (#2385)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-04 18:01:34 -05:00
github-actions[bot] 115df69574 Version packages (#2382)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-03 17:05:18 -04:00
devin ivy 9b78f06134 Fix to blob deletion w/ disk store (#2381)
pds: ensure account deletion doesn't touch others' blobs
2024-04-03 16:54:41 -04:00
Matthieu Sieben 97482da17a Update prettier & eslint (#2373)
* chore(deps): update linting tools

* style(lint): format code
2024-04-03 21:39:11 +02:00
devin ivy cb2eb585e4 Fix inclusion for reposts on author feed w/ posts_and_author_threads (#2355)
appview: fix inclusion for reposts on author feed w/ posts_and_author_threads
2024-03-20 14:17:00 -04:00
github-actions[bot] dbda260a21 Version packages (#2345)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-19 16:02:56 -05:00
github-actions[bot] b4346727f7 Version packages (#2343)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-19 14:09:41 -05:00
devin ivy c28e374868 Appview: add associated.labeler info to all profile views (#2341)
* lexicon: add associated field to profile and profile-basic views, for indicating whether labeler

* appview: add associated.labeler to profile and profile-basic views

* dev-env: downgrade get-port, non-esm-only version
2024-03-19 12:26:14 -04:00
github-actions[bot] 07ec9ea749 Version packages (#2339)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-18 18:24:07 -04:00
Matthieu Sieben f689bd51a2 Build system rework (#2169)
* refactor(crypto): remove circular dependency

* refactor(crypto): expose compress/decompress as part of the DidKeyPlugin interface

* fix(crypto): remove import from private file

* refactor: isolate tsconfig

* fix: remove unused bench file

* chore(repo): remove unused deps

* fix(ozone): properly list dependencies

* fix(services): do lint js files

* fix(services/pds): remove unused deps

* chore(pds): remove bench

* chore(dev-env): remove unused deps

* chore(api): remove bench

* remove unused babel.config.js files

* fix: remove .ts extension from import

* fix(pds): remove imports of src files

* fix(tsconfig): properly list all projects

* fix(dev-env): remove imports of src files

* fix(bsky): remove direct import to crypto src

* fix(api): remove imports to api internals

* chore(build): prevent bundling of built output

* chore(dev): add "dev" script to build in watch mode

* chore(deps): move ts-node dependency where it is actually used

* fix(deps): add dev-env as project dependency

* fix(xrpc-server): properly type kexicon

* fix(bsky): improve typings

* fix(pds): fully type formatRecordEmbedInternal return value

* fix(repo): remove imports from @ipld/car/api

* feat(dev-env): re-export BskyIngester

* fix: properly lint & type jest config & test files

* fix(ci): test after build

* fix(types): use NodeJS.Timeout instead of NodeJS.Timer

* fix(bsky): make types exportable

* fix(ozone): make types exportable

* fix(xrpc-server): make types exportable

* fix(xprc-server): make code compliant with "node" types

* fix(xrpc-server): avoid accessing properties of unknown

* chore(deps): update @types/node

* feat(tsconfig): narrow down available types depending on the package's target environment

* fix(pds): remove unused prop

* fix(bsync): Database's migrator not always initialized

* fix(dev-env): remove unreachable code

* fix(xrpc-server): remove unused import

* fix(xrpc-server): mark header property as abstract

* fix(pds): initialize LeakyTxPlugin's txOver property

* fix(bsky): initialize LeakyTxPlugin's txOver property

* fix(bsky): remove unused migrator from DatabaseCoordinator

* fix(bsky): Properly initialize LabelService's cache property

* fix(ozone): Database's migrator not initialized

* fix(ozone): initialize LeakyTxPlugin's txOver property

* fix(crypto): ignore unused variable error

* feat(tsconfig): use stricter rules

* feat(tsconfig): enable useDefineForClassFields

* feat(xrpc-server): add support for brotli incoming payload

* fix(xrpc-server): properly parse & process content-encoding

* fix(common:stream): always call cb in _transform

* tidy/fix tests and service entrypoints

* Revert "fix(xrpc-server): properly parse & process content-encoding"

This reverts commit 2b1c66e153820d3e128fc839fcc1834d52a66686.

* Revert "feat(xrpc-server): add support for brotli incoming payload"

This reverts commit e710c21e6118214ddf215b0515e68cb87299a952.

* remove special node env for tests (defaults to jest val of "test")

* kill mute sync handler on disconnect

* work around connect-es bug w/ request aborts

* style(crypto): rename imports from uint8arrays

* fix update package-lock

* fix lint

* force hbs files to be bundled as cjs

* fix: use concurrently instead of npm-run-all

npm-run-all seems not to be maintained anymore. Additionally, concurrently better forwards signals to child processes.

* remove concurrently alltogether

* ignore sqlite files in services/pds

* fix verify

* fix verify

* tidy, fix verify

* fix blob diversion test

* build rework changeset

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
2024-03-18 17:10:58 -04:00
futur 0a2464cb67 Remove unused dependencies (#2327) 2024-03-18 16:01:15 -04:00
github-actions[bot] f45eef3414 Version packages (#2330)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-16 10:19:29 -05:00
github-actions[bot] a1e1d9332d Version packages (#2323)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-14 13:19:30 -04:00
github-actions[bot] f42f548e1b Version packages (#2314)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-13 19:19:48 -04:00
github-actions[bot] b286cd1a84 Version packages (#2305)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-13 12:50:35 -05:00