Skip to content

External harness app #273

Description

@aaronjae22

This is something I've been working in order to be able to demo / test our project functionalities and verify how it interact with a destination server.

Our first layer of testing is our unit tests that allow to test our implementations. Second is our built-in browser demo and commands.

This would be our third and its meant to check real source-to-destination interaction. This also could be useful in actually understanding our demoing / testing and what went right and wrong.

Worth mention that this does not need to be a full destination server. It just needs to behave like one.

It does not need to be a full destination server. It just needs to behave like one.

  • a start page that builds the authorize URL
  • a callback page that captures raw query params
  • state generation and validation
  • a token exchange action
  • a fetch page for actor and LOLA collections
  • a log or raw JSON inspector so we can see what happened

The important config is:

  • SOURCE_BASE_URL
  • CLIENT_ID
  • CLIENT_SECRET
  • REDIRECT_URI

For authorize/callback features:

  • start auth in the browser
  • inspect the exact callback URL
  • confirm which query params are present
  • this is where you check code, state, and later activitypub_actor

For token features:

  • exchange the code from the callback
  • store and display the full token JSON
  • retry with wrong redirect URI or bad credentials to test failure modes

For actor-binding features:

  • use the token on the authorized actor
  • use the same token on a different actor
  • confirm the second call fails as expected

For collection and pagination features:

  • fetch the authenticated actor first
  • resolve migration URLs from the actor payload
  • walk paginated collections and log page boundaries

For rate limiting features:

  • record 429 responses
  • record Retry-After
  • pause and resume fetches the way a real destination would

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions