Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/create-pds-ux.md

This file was deleted.

34 changes: 0 additions & 34 deletions .changeset/deactivated-account-pattern.md

This file was deleted.

28 changes: 0 additions & 28 deletions .changeset/oauth-provider-initial.md

This file was deleted.

6 changes: 6 additions & 0 deletions packages/create-pds/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# create-pds

## 0.0.4

### Patch Changes

- [#33](https://github.com/ascorbic/atproto-worker/pull/33) [`4f5b50c`](https://github.com/ascorbic/atproto-worker/commit/4f5b50c4911514f0f87dc3f3856a2b4e2ccb9b4d) Thanks [@ascorbic](https://github.com/ascorbic)! - Improve UX with clearer prompts

## 0.0.3

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/create-pds/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "create-pds",
"version": "0.0.3",
"version": "0.0.4",
"description": "Create a new AT Protocol PDS on Cloudflare Workers",
"type": "module",
"bin": {
Expand Down
30 changes: 30 additions & 0 deletions packages/oauth-provider/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# @ascorbic/atproto-oauth-provider

## 0.1.0

### Minor Changes

- [#33](https://github.com/ascorbic/atproto-worker/pull/33) [`4f5b50c`](https://github.com/ascorbic/atproto-worker/commit/4f5b50c4911514f0f87dc3f3856a2b4e2ccb9b4d) Thanks [@ascorbic](https://github.com/ascorbic)! - Initial release of AT Protocol OAuth 2.1 Provider

A complete OAuth 2.1 Authorization Server implementation for AT Protocol, enabling "Login with Bluesky" functionality.

**Features:**
- Full OAuth 2.1 Authorization Code flow with PKCE
- DPoP (Demonstrating Proof of Possession) support for token binding
- PAR (Pushed Authorization Requests) for secure request initiation
- Client metadata discovery and validation
- Token rotation and revocation
- SQLite-based storage adapter for Durable Objects

**Security:**
- Cryptographically secure token generation
- PKCE challenge verification (SHA-256)
- DPoP proof validation with replay protection
- Token binding to prevent token theft

**Compatibility:**
- Integrates with `@atproto/oauth-client` for client applications
- Storage interface allows custom backends beyond SQLite
- Built for Cloudflare Workers with Durable Objects

This package enables AT Protocol PDSs to act as OAuth providers, allowing users to authenticate with third-party applications using their PDS identity.
2 changes: 1 addition & 1 deletion packages/oauth-provider/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ascorbic/atproto-oauth-provider",
"version": "0.0.0",
"version": "0.1.0",
"description": "OAuth 2.1 Provider with AT Protocol extensions for Cloudflare Workers",
"type": "module",
"main": "dist/index.js",
Expand Down
40 changes: 40 additions & 0 deletions packages/pds/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# @ascorbic/pds

## 0.2.0

### Minor Changes

- [#33](https://github.com/ascorbic/atproto-worker/pull/33) [`4f5b50c`](https://github.com/ascorbic/atproto-worker/commit/4f5b50c4911514f0f87dc3f3856a2b4e2ccb9b4d) Thanks [@ascorbic](https://github.com/ascorbic)! - Implement deactivated account pattern for seamless account migration

**Account State Management:**
- Add account activation state tracking to support migration workflows
- New `INITIAL_ACTIVE` environment variable controls whether accounts start active or deactivated
- Accounts can transition between active and deactivated states

**Migration Endpoints:**
- `POST /xrpc/com.atproto.server.activateAccount` - Enable writes and firehose events
- `POST /xrpc/com.atproto.server.deactivateAccount` - Disable writes while keeping reads available
- Enhanced `getAccountStatus` to return actual activation state and migration metrics

**Write Protection:**
- Write operations (`createRecord`, `putRecord`, `deleteRecord`, `applyWrites`) are blocked when account is deactivated
- Returns clear "AccountDeactivated" error with helpful instructions
- Read operations, `importRepo`, `uploadBlob`, and `activateAccount` remain available

**Improved Setup Flow:**
- `pds init` now asks if you're migrating an existing account
- For migrations: auto-resolves handle to DID, deploys account as deactivated
- For new accounts: generates identity, deploys as active
- Worker name automatically generated from handle using smart slugification

**Migration UX:**
- Handle resolution using DNS-over-HTTPS via `@atproto-labs/handle-resolver`
- Retry logic with helpful error messages for failed handle lookups
- Step-by-step guidance for export, import, PLC update, and activation
- Custom domain validation to prevent using hosted handles (\*.bsky.social)

This enables users to safely migrate their Bluesky accounts to self-hosted infrastructure with a clean, resumable workflow.

### Patch Changes

- Updated dependencies [[`4f5b50c`](https://github.com/ascorbic/atproto-worker/commit/4f5b50c4911514f0f87dc3f3856a2b4e2ccb9b4d)]:
- @ascorbic/atproto-oauth-provider@0.1.0

## 0.1.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/pds/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ascorbic/pds",
"version": "0.1.0",
"version": "0.2.0",
"description": "AT Protocol PDS on Cloudflare Workers",
"type": "module",
"main": "dist/index.js",
Expand Down