Skip to content

Phase 1: Quickslice Architecture Assessment #90

@renderghost

Description

@renderghost

Phase 1: Quickslice Architecture Assessment

Research and understand Quickslice's capabilities to make informed decisions before implementation.

Objectives

  1. Understand Quickslice's exact GraphQL schema for our data types
  2. Understand how Quickslice handles OAuth and sessions
  3. Understand how Quickslice writes records to AT Protocol PDS
  4. Identify all breaking changes and compatibility issues
  5. Make critical architectural decisions

Critical Questions to Answer

OAuth & Authentication

  • Does Quickslice provide full OAuth flow or just token management?
  • What session token format does Quickslice use?
  • How do we attach session tokens to GraphQL requests?
  • Can we keep AT Protocol OAuth or must we use Quickslice OAuth?
  • What happens to existing user sessions during migration?

GraphQL Schema

  • Does Quickslice auto-generate schema from our Lexicon files?
  • What is the exact GraphQL type for each Lexicon record?
  • How do we query records? (byDid? byHandle? byRkey?)
  • What mutations are available? (create, update, delete?)
  • How do nested objects map? (e.g., location inside affiliation)
  • How do references work? (e.g., DOI resolution)

Database & Persistence

  • What database does Quickslice use? (Neon? External?)
  • Do we control the schema or does Quickslice own it?
  • How do we migrate existing data?
  • Can we run custom queries or only GraphQL?
  • How does Quickslice handle migrations/schema changes?

PDS Integration

  • When we create a record via GraphQL, is it automatically written to PDS?
  • Can we verify records were written to Bluesky?
  • How are DID and Repo handled? (auto from session?)
  • What's the latency for PDS writes?
  • Can we handle PDS write failures?

Session Management

  • How does Quickslice store sessions?
  • What's the session expiry duration?
  • How do we refresh expired sessions?
  • Can we maintain HTTP-only cookies?
  • How do we log out?

Deliverables

  1. Quickslice API Documentation Review

    • Read official docs thoroughly
    • Map GraphQL schema to our lexicons
    • Document all breaking changes
  2. Proof of Concept

    • Set up Quickslice client
    • Authenticate with Quickslice OAuth
    • Execute sample GraphQL query
    • Verify record write to PDS
  3. Decision Document

    • Answer all critical questions above
    • Make decisions on:
      • OAuth strategy (Quickslice vs AT Protocol)
      • Session token storage
      • GraphQL client library
      • Database ownership model
    • Document migration timeline risks
  4. Implementation Checklist

    • Break down Phase 2 work into specific tasks
    • Identify dependencies between tasks
    • Update timeline if needed
    • Create sub-issues for Phase 2

Blocking Criteria

Do NOT proceed to Phase 2 until:

  • All critical questions above are answered
  • Proof of concept working (auth → GraphQL query → PDS verify)
  • All decisions documented and approved
  • Timeline validated with actual testing
  • Any showstoppers identified and solutions proposed

Success Metrics

  • Complete understanding of Quickslice capabilities
  • Clear decision on all 4 critical architectural choices
  • Working POC demonstrating OAuth + GraphQL + PDS write flow
  • Detailed task breakdown for Phase 2
  • No unknown unknowns

Estimated Duration

1-2 weeks depending on Quickslice documentation quality and learning curve

Next Issue

Once Phase 1 is complete:
#90: Phase 2: Authentication Migration (OAuth + Sessions)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions