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
2 changes: 1 addition & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"changelog": [
"@changesets/changelog-github",
{
"repo": "ascorbic/atproto-worker"
"repo": "ascorbic/cirrus"
}
],
"commit": false,
Expand Down
7 changes: 7 additions & 0 deletions .changeset/pretty-vans-bathe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@getcirrus/oauth-provider": patch
"create-pds": patch
"@getcirrus/pds": patch
---

Rename to Cirrus
2 changes: 1 addition & 1 deletion .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ jobs:
- name: Build
run: pnpm build
- name: E2E Tests
run: pnpm --filter @ascorbic/pds test:e2e
run: pnpm --filter @getcirrus/pds test:e2e
8 changes: 5 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This file provides guidance to agentic coding tools when working with code in th

**ALWAYS verify your current working directory before operating on files:**

- Repository root is `atproto-worker` not `packages/pds/`
- Repository root is `cirrus` not `packages/pds/`
- Use `pwd` or check `process.cwd()` to confirm location
- Many project files (CLAUDE.md, plans/) are at repository root
- Package-specific files are in `packages/pds/`
Expand All @@ -27,8 +27,10 @@ This file provides guidance to agentic coding tools when working with code in th

This is a monorepo using pnpm workspaces with the following structure:

- **Root** (`atproto-worker`): Workspace configuration, shared tooling, plan documents
- **packages/pds**: The main PDS library (`@ascorbic/pds`)
- **Root** (`cirrus`): Workspace configuration, shared tooling, plan documents
- **packages/pds**: The main PDS library (`@getcirrus/pds`)
- **packages/oauth-provider**: OAuth 2.1 Provider (`@getcirrus/oauth-provider`)
- **packages/create-pds**: CLI scaffolding tool (`create-pds`)
- **demos/pds**: Demo PDS deployment

## Commands
Expand Down
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# AT Protocol PDS on Cloudflare Workers
<div align="center">
<h1>☁️ Cirrus</h1>
<p><em>The lightest PDS in the Atmosphere</em></p>
</div>

A single-user [AT Protocol](https://atproto.com) Personal Data Server (PDS) that runs entirely on Cloudflare's edge infrastructure. Host your Bluesky identity on your own domain with minimal operational overhead.
A single-user [AT Protocol](https://atproto.com) Personal Data Server (PDS) that runs on a Cloudflare Worker.

## Why run your own PDS?

Expand Down Expand Up @@ -31,11 +34,11 @@ This scaffolds a new project, installs dependencies, and runs the setup wizard.

## Packages

| Package | Description |
|---------|-------------|
| [`@ascorbic/pds`](./packages/pds/) | The PDS implementation – handles repository operations, federation, OAuth, and the CLI |
| [`@ascorbic/atproto-oauth-provider`](./packages/oauth-provider/) | OAuth 2.1 provider for "Login with Bluesky" |
| [`create-pds`](./packages/create-pds/) | Scaffolding CLI to create new PDS projects |
| Package | Description |
| --------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [`@getcirrus/pds`](./packages/pds/) | The PDS implementation – handles repository operations, federation, OAuth, and the CLI |
| [`@getcirrus/oauth-provider`](./packages/oauth-provider/) | OAuth 2.1 provider for "Login with Bluesky" |
| [`create-pds`](./packages/create-pds/) | Scaffolding CLI to create new PDS projects |

## Status

Expand Down
6 changes: 3 additions & 3 deletions demos/pds/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Personal PDS on Cloudflare Workers

This is an example deployment of `@ascorbic/pds` - a single-user AT Protocol Personal Data Server on Cloudflare Workers.
This is an example deployment of `@getcirrus/pds` - a single-user AT Protocol Personal Data Server on Cloudflare Workers.

> **⚠️ Experimental Software**
>
Expand Down Expand Up @@ -76,11 +76,11 @@ Configuration is via environment variables: vars in the `wrangler.jsonc` and sec

## Architecture

This deployment simply re-exports the `@ascorbic/pds` package:
This deployment simply re-exports the `@getcirrus/pds` package:

```typescript
// src/index.ts
export { default, AccountDurableObject } from "@ascorbic/pds";
export { default, AccountDurableObject } from "@getcirrus/pds";
```

No additional code needed!
Expand Down
2 changes: 1 addition & 1 deletion demos/pds/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"type": "module",
"private": true,
"dependencies": {
"@ascorbic/pds": "workspace:*"
"@getcirrus/pds": "workspace:*"
},
"devDependencies": {
"@cloudflare/vite-plugin": "^1.17.0",
Expand Down
2 changes: 1 addition & 1 deletion demos/pds/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
// Re-export the PDS worker - that's all you need!
export { default, AccountDurableObject } from "@ascorbic/pds";
export { default, AccountDurableObject } from "@getcirrus/pds";
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"name": "atproto-worker",
"name": "cirrus",
"private": true,
"version": "1.0.0",
"description": "AT Protocol PDS on Cloudflare Workers",
"description": "Cirrus – A single-user AT Protocol PDS on Cloudflare Workers",
"scripts": {
"check": "pnpm run --filter '@ascorbic/*' --filter 'create-pds' check",
"test": "pnpm run --filter '@ascorbic/*' --filter 'create-pds' test",
"build": "pnpm run --filter '@ascorbic/*' --filter 'create-pds' build",
"check": "pnpm run --filter '@getcirrus/*' --filter 'create-pds' check",
"test": "pnpm run --filter '@getcirrus/*' --filter 'create-pds' test",
"build": "pnpm run --filter '@getcirrus/*' --filter 'create-pds' build",
"format": "prettier --write .",
"knip": "knip"
},
Expand Down
6 changes: 3 additions & 3 deletions packages/create-pds/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# create-pds

Scaffold a new [AT Protocol](https://atproto.com) Personal Data Server (PDS) on Cloudflare Workers.
Scaffold a new [AT Protocol](https://atproto.com) Personal Data Server (PDS) on Cloudflare Workers. Creates a Cirrus PDS project.

## Usage

Expand All @@ -24,7 +24,7 @@ This will:
create-pds [name]

Arguments:
name Project name (default: pds-worker)
name Project name (default: my-pds)

Options:
--package-manager Package manager to use (npm, yarn, pnpm, bun)
Expand All @@ -45,4 +45,4 @@ npm run dev

Your PDS will be running at http://localhost:5173

See the [@ascorbic/pds documentation](https://github.com/ascorbic/atproto-worker/tree/main/packages/pds) for configuration and deployment instructions.
See the [@getcirrus/pds documentation](https://github.com/ascorbic/cirrus/tree/main/packages/pds) for configuration and deployment instructions.
2 changes: 1 addition & 1 deletion packages/create-pds/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "create-pds",
"version": "0.0.6",
"description": "Create a new AT Protocol PDS on Cloudflare Workers",
"description": "Create a new Cirrus AT Protocol PDS on Cloudflare Workers",
"type": "module",
"bin": {
"create-pds": "./dist/index.js"
Expand Down
6 changes: 3 additions & 3 deletions packages/create-pds/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ async function replaceInFile(
async function getLatestPdsVersion(): Promise<string> {
try {
const response = await fetch(
"https://registry.npmjs.org/@ascorbic/pds/latest",
"https://registry.npmjs.org/@getcirrus/pds/latest",
);
if (!response.ok) {
throw new Error(`Failed to fetch: ${response.status}`);
Expand Down Expand Up @@ -242,9 +242,9 @@ const main = defineCommand({

// Copy template
const spinner = p.spinner();
spinner.start("Fetching latest @ascorbic/pds version...");
spinner.start("Fetching latest @getcirrus/pds version...");
const pdsVersion = await getLatestPdsVersion();
spinner.stop(`Using @ascorbic/pds ${pdsVersion}`);
spinner.stop(`Using @getcirrus/pds ${pdsVersion}`);

spinner.start("Copying template...");

Expand Down
2 changes: 1 addition & 1 deletion packages/create-pds/templates/pds-worker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ If migration fails partway through:

- [AT Protocol Documentation](https://atproto.com)
- [Cloudflare Workers Docs](https://developers.cloudflare.com/workers/)
- [@ascorbic/pds Documentation](https://github.com/ascorbic/atproto-worker/tree/main/packages/pds)
- [@getcirrus/pds Documentation](https://github.com/ascorbic/cirrus/tree/main/packages/pds)
- [Account Migration Guide](https://atproto.com/guides/account-migration)

## License
Expand Down
4 changes: 2 additions & 2 deletions packages/create-pds/templates/pds-worker/package.json.tmpl
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"name": "{{name}}",
"version": "1.0.0",
"description": "AT Protocol PDS on Cloudflare Workers",
"description": "Cirrus – AT Protocol PDS on Cloudflare Workers",
"type": "module",
"private": true,
"dependencies": {
"@ascorbic/pds": "{{pdsVersion}}"
"@getcirrus/pds": "{{pdsVersion}}"
},
"devDependencies": {
"@cloudflare/vite-plugin": "^1.17.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/create-pds/templates/pds-worker/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
// Re-export the PDS worker - that's all you need!
export { default, AccountDurableObject } from "@ascorbic/pds";
export { default, AccountDurableObject } from "@getcirrus/pds";
4 changes: 2 additions & 2 deletions packages/create-pds/test/e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,13 @@ describe("create-pds e2e", () => {
);

expect(packageJson.name).toBe(PROJECT_NAME);
expect(packageJson.dependencies["@ascorbic/pds"]).toBeDefined();
expect(packageJson.dependencies["@getcirrus/pds"]).toBeDefined();
});

it("includes correct worker entry point", () => {
const indexTs = readFileSync(join(PROJECT_DIR, "src/index.ts"), "utf-8");

expect(indexTs).toContain("@ascorbic/pds");
expect(indexTs).toContain("@getcirrus/pds");
expect(indexTs).toContain("AccountDurableObject");
});

Expand Down
2 changes: 1 addition & 1 deletion packages/oauth-provider/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# @ascorbic/atproto-oauth-provider
# @getcirrus/oauth-provider

## 0.1.1

Expand Down
12 changes: 6 additions & 6 deletions packages/oauth-provider/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# @ascorbic/atproto-oauth-provider
# @getcirrus/oauth-provider

> **🚨 This package has been renamed to `@getcirrus/oauth-provider`**
>
Expand All @@ -20,15 +20,15 @@ A complete OAuth 2.1 provider implementation that enables "Login with Bluesky" f
## Installation

```bash
npm install @ascorbic/atproto-oauth-provider
npm install @getcirrus/oauth-provider
# or
pnpm add @ascorbic/atproto-oauth-provider
pnpm add @getcirrus/oauth-provider
```

## Quick Start

```typescript
import { OAuthProvider } from "@ascorbic/atproto-oauth-provider";
import { OAuthProvider } from "@getcirrus/oauth-provider";
import { OAuthStorage } from "./your-storage-implementation";

// Initialize the provider
Expand Down Expand Up @@ -102,7 +102,7 @@ export interface OAuthProviderStorage {
}
```

A SQLite implementation for Durable Objects is included in the `@ascorbic/pds` package.
A SQLite implementation for Durable Objects is included in the `@getcirrus/pds` package.

## OAuth 2.1 Flow

Expand Down Expand Up @@ -283,6 +283,6 @@ MIT

## Related Packages

- `@ascorbic/pds` - AT Protocol PDS implementation using this OAuth provider
- `@getcirrus/pds` - AT Protocol PDS implementation using this OAuth provider
- `@atproto/oauth-client` - Official AT Protocol OAuth client
- `@atproto/oauth-types` - TypeScript types for AT Protocol OAuth
2 changes: 1 addition & 1 deletion packages/oauth-provider/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "@ascorbic/atproto-oauth-provider",
"name": "@getcirrus/oauth-provider",
"version": "0.1.1",
"description": "OAuth 2.1 Provider with AT Protocol extensions for Cloudflare Workers",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/oauth-provider/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* @ascorbic/atproto-oauth-provider
* @getcirrus/oauth-provider
* OAuth 2.1 Provider with AT Protocol extensions for Cloudflare Workers
*/

Expand Down
2 changes: 1 addition & 1 deletion packages/pds/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# @ascorbic/pds
# @getcirrus/pds

## 0.2.3

Expand Down
Loading
Loading