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
12 changes: 9 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
# Changelog

## 0.13.8
## 0.13.9

<!-- release:start -->

### New Features

- **WorkOS organization domains** — the WorkOS emulator now persists organization domains statefully: `POST /organization_domains` creates a pending domain with a DNS verification token, `GET /organization_domains/:id` returns its current state, `POST /organization_domains/:id/verify` performs the real SDK verification transition, and `DELETE /organization_domains/:id` removes it. Deleting an organization cascades to its domains, and a test-only `POST /_emulate/organization_domains/:id/verify` hook flips a pending domain to verified out of band. Domains are globally unique across organizations with WorkOS-shaped conflict errors.
- **Stripe OpenAPI discovery in YAML** — the Stripe emulator serves `GET /openapi.yaml` alongside `GET /openapi.json`, derived from the same OpenAPI document. Form-encoded deep-object metadata (`metadata[foo]=bar`) is modeled in the spec's request encodings, and the customers API projects nested metadata in responses, matching Stripe's wire behavior. The request ledger records the parsed deep-object bodies.
- **WorkOS organization-owned API keys** — the WorkOS emulator now serves the SDK's organization API key surface: `GET /organizations/:id/api_keys` lists an organization's own keys (organization-owned only — members' personal keys never share the listing) and `POST /organizations/:id/api_keys` mints one. An organization-owned key carries the real wire owner shape (`owner: { type: "organization", id }`, no member field), round-trips through `POST /api_keys/validations` with that shape, and deletes through the shared `DELETE /api_keys/:id`. Unknown organizations 404.

<!-- release:end -->

## 0.13.8

### New Features

- **WorkOS organization domains** — the WorkOS emulator now persists organization domains statefully: `POST /organization_domains` creates a pending domain with a DNS verification token, `GET /organization_domains/:id` returns its current state, `POST /organization_domains/:id/verify` performs the real SDK verification transition, and `DELETE /organization_domains/:id` removes it. Deleting an organization cascades to its domains, and a test-only `POST /_emulate/organization_domains/:id/verify` hook flips a pending domain to verified out of band. Domains are globally unique across organizations with WorkOS-shaped conflict errors.
- **Stripe OpenAPI discovery in YAML** — the Stripe emulator serves `GET /openapi.yaml` alongside `GET /openapi.json`, derived from the same OpenAPI document. Form-encoded deep-object metadata (`metadata[foo]=bar`) is modeled in the spec's request encodings, and the customers API projects nested metadata in responses, matching Stripe's wire behavior. The request ledger records the parsed deep-object bodies.

## 0.13.7

### New Features
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/adapter-next/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/adapter-next",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/apple/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/apple",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/autumn/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/autumn",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/aws/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/aws",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/clerk/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/clerk",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/cloudflare/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/cloudflare",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/core",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/github/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/github",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/gitlab/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/gitlab",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/google/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/google",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/mcp/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/mcp",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/microsoft/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/microsoft",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/mongoatlas/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/mongoatlas",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/okta/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/okta",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/posthog/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/posthog",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/resend/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/resend",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/slack/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/slack",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/spotify/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/spotify",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/stripe/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/stripe",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/vercel/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/vercel",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/workos/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/workos",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
4 changes: 1 addition & 3 deletions packages/@emulators/workos/src/__tests__/workos.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -383,9 +383,7 @@ describe("workos emulator with the real @workos-inc/node SDK", () => {
expect(afterDelete.data).toEqual([]);

// An unknown org 404s rather than answering an empty list.
await expect(
workos.organizations.listOrganizationApiKeys({ organizationId: "org_missing" }),
).rejects.toThrow();
await expect(workos.organizations.listOrganizationApiKeys({ organizationId: "org_missing" })).rejects.toThrow();
});

it("serves JWKS on both surfaces and OAuth AS metadata", async () => {
Expand Down
7 changes: 1 addition & 6 deletions packages/@emulators/workos/src/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,7 @@ export function getWorkosStore(store: Store): WorkosStore {
"organization_id",
"token",
]),
apiKeys: store.collection<WorkosApiKey>("workos.api_keys", [
"workos_id",
"value",
"user_id",
"organization_id",
]),
apiKeys: store.collection<WorkosApiKey>("workos.api_keys", ["workos_id", "value", "user_id", "organization_id"]),
authCodes: store.collection<WorkosAuthCode>("workos.auth_codes", ["code"]),
sessions: store.collection<WorkosSession>("workos.sessions", ["refresh_token", "workos_id"]),
vaultObjects: store.collection<WorkosVaultObject>("workos.vault_objects", ["workos_id", "name"]),
Expand Down
2 changes: 1 addition & 1 deletion packages/@emulators/x/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@emulators/x",
"version": "0.13.8",
"version": "0.13.9",
"private": true,
"license": "Apache-2.0",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/emulate/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@executor-js/emulate",
"version": "0.13.8",
"version": "0.13.9",
"description": "Local drop-in replacement services for CI and no-network sandboxes",
"license": "Apache-2.0",
"type": "module",
Expand Down
Loading