Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Middleware #328

Open
39 tasks
oscartbeaumont opened this issue Dec 6, 2024 · 0 comments
Open
39 tasks

Middleware #328

oscartbeaumont opened this issue Dec 6, 2024 · 0 comments

Comments

@oscartbeaumont
Copy link
Member

oscartbeaumont commented Dec 6, 2024

This issue is a central place to track the stabilization of many official middleware.

Middleware:

  • rspc-tracing
  • rspc-cache
    • Convert it into an Extension or let it be used between layers? Technically the later would be useful but it could be error prone so idk.
    • async Backend
    • Redis, mysql, sqlite, postgres backend (done ShadCN style)
    • cache_until(timestamp)
    • cache-control headers
  • rspc-devtools
    • Introspect route types for playground UI
    • Generate statistics for each procedure (p99, etc)
    • Tracking spans for each procedure (will require async integration)
    • Stream spans instead of storing them???
    • Dealing with CORS
    • Only depdend on Specta in unit test for exporting?
  • rspc-invalidation
    • SFM
    • Invalidate across all clients using a subscription.
      • How does auth tie into this?
      • How can we only send data for queries that the client cares about?
      • Should we try for the stateful syntax
  • rspc-openapi
    • Can we make it work with any HTTP adapter (not just Axum).
    • OpenAPI::infer - determine method and URL automatically from ProcedureMeta
    • Merging rspc_openapi instances (so BaseProcedure::authed can add auth info)
    • ShadCN style web framework integration like the regular integrations
  • rspc-zer
    • Secure HTTP headers + configurable
    • Optional shadow authed cookie
    • Support Authorization header
    • Check issuer (and maybe even allow multiple issuers for different types of tokens)
    • Validate token expiry
    • Stateless JWT sessions w/ cookies
    • Short-lived JWT's and refresh tokens which refresh with database
    • Work with Tauri
    • OAuth?
    • Javascript client
    • Middleware for requiring authorisation or specific user permission (done through params on the session)
  • rspc-validator
    • Javascript client?
    • Replicate Jordan's GraphQL to form thing.

Long term:

  • Can we create a generalised library query system
  • rspc-normi - bring it back
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant