Skip to content

chore(sdks,docs): v0.13 SDK generation prep, upgrade guide, spec fixes (#688, #689)#690

Merged
leggetter merged 7 commits into
mainfrom
feature/sdk-v0.13-generation
Feb 11, 2026
Merged

chore(sdks,docs): v0.13 SDK generation prep, upgrade guide, spec fixes (#688, #689)#690
leggetter merged 7 commits into
mainfrom
feature/sdk-v0.13-generation

Conversation

@leggetter

@leggetter leggetter commented Feb 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

Prep for v0.13 SDK generation and documentation updates. SDKs will be generated via GitHub Actions (Generate OUTPOST-TS, OUTPOST-GO, OUTPOST-PYTHON).

Changes

OpenAPI spec (#688, #689)

Docs

  • Upgrade to v0.13 guide: add to sidebar nav (with Upgrade to v0.12), add SDK Migration section (list response shape, events/attempts/schemas/topics before-after, checklist).

SDKs

  • Overlays (sdks/schemas/): include pagination-fixes-overlay.yaml and speakeasy-modifications-overlay.yaml for v0.13 generation (no generated SDK code in this PR).

Examples

  • Dashboard integration: events list uses v0.13 response shape (response.models, response.pagination).

Spec SDK tests

Next steps

  • Run GitHub Actions: Generate OUTPOST-TS, Generate OUTPOST-GO, Generate OUTPOST-PYTHON (optionally set set_version to 0.13.0).
  • Merge generated SDK PRs after review.
  • Update upgrade guide: remove GET /events destination_id / 500 note and Bug: GET /events with destination_id returns 500 #688 link if not done in a follow-up.

Refs #688, #689

leggetter and others added 2 commits February 11, 2026 14:05
…tempt tests

- Use response.models and response.pagination for list endpoints
- Treat Event.status as optional per spec; poll for status after delivery
- Add Event → Attempt test: publish event, assert attempt created with status success
- Update run script, README, .env.example, mocharc, destination tests for SDK

Co-authored-by: Cursor <cursoragent@cursor.com>
…xample

- docs: add Upgrade to v0.12/v0.13 to sidebar, SDK migration section, issue #688 link
- sdks/schemas: include pagination and speakeasy overlays for SDK generation
- examples: dashboard-integration uses events list models/pagination (v0.13)

Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings February 11, 2026 14:25
@vercel

vercel Bot commented Feb 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
outpost-docs Ready Ready Preview, Comment Feb 11, 2026 4:42pm
outpost-website Ready Ready Preview, Comment Feb 11, 2026 4:42pm

Request Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares the repo for Outpost v0.13 SDK regeneration by updating Speakeasy overlays, aligning spec-SDK contract tests to the new { models, pagination } envelope, and adding documentation/examples to guide users through the breaking SDK/API changes.

Changes:

  • Updated Speakeasy overlays for v0.13 endpoint naming + pagination handling.
  • Updated/added spec-SDK tests (events/topics + destination topic selection) to match v0.13 response shapes and async delivery behavior.
  • Updated docs + demo dashboard example for the v0.13 list response envelope.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
spec-sdk-tests/tests/topics.test.ts New topics list/sanity tests.
spec-sdk-tests/tests/events.test.ts Updates event status polling and adds Event→Attempt test; adapts to models/pagination.
spec-sdk-tests/tests/destinations/webhook.test.ts Uses instance topics from /topics for “array of topics” test.
spec-sdk-tests/tests/destinations/rabbitmq.test.ts Uses instance topics from /topics for “array of topics” test.
spec-sdk-tests/tests/destinations/gcp-pubsub.test.ts Uses instance topics from /topics for “array of topics” test.
spec-sdk-tests/tests/destinations/azure-servicebus.test.ts Uses instance topics from /topics for “array of topics” test.
spec-sdk-tests/tests/destinations/aws-sqs.test.ts Uses instance topics from /topics for “array of topics” test.
spec-sdk-tests/tests/destinations/aws-s3.test.ts Uses instance topics from /topics for “array of topics” test.
spec-sdk-tests/tests/destinations/aws-kinesis.test.ts Uses instance topics from /topics for “array of topics” test.
spec-sdk-tests/test-setup.ts Adds optional global per-test delay hook via TEST_DELAY_MS.
spec-sdk-tests/scripts/run-tests.sh Adds optional skip for /healthz check and improves API base URL handling.
spec-sdk-tests/package.json Adds test:failures script for targeted reruns.
spec-sdk-tests/README.md Documents managed Outpost health-check skip + delay + curl debugging.
spec-sdk-tests/.mocharc.json Requires the new test-setup.ts hook file.
spec-sdk-tests/.env.example Updates examples and adds SKIP_HEALTH_CHECK + TEST_DELAY_MS.
sdks/schemas/speakeasy-modifications-overlay.yaml Updates Speakeasy name overrides for v0.13 endpoint/method naming.
sdks/schemas/pagination-fixes-overlay.yaml Updates pagination override targets/config for v0.13 SeekPagination + envelope.
examples/demos/dashboard-integration/src/lib/outpost.ts Updates dashboard example to read response.models from events list.
docs/zudoku.config.ts Adds “Upgrade to v0.12/v0.13” guides to docs nav.
docs/pages/guides/upgrade-v0.13.mdx Adds v0.13 SDK migration guidance and before/after examples.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread sdks/schemas/pagination-fixes-overlay.yaml Outdated
Comment thread spec-sdk-tests/package.json Outdated
Comment thread spec-sdk-tests/tests/events.test.ts Outdated
Comment on lines 220 to +237
@@ -151,50 +227,44 @@ describe('Events - Status Field Tests (PR #491)', () => {
});
console.log('Event published successfully');

// Poll for events with 5s intervals, max 30s wait
const events = await pollForEvents(
// Poll until at least one event has status (delivery attempt completed). Uses list without destinationId
// because GET /events?destination_id=... currently returns 500 (see GitHub issue).
const events = await pollForEventsWithStatus(
async () => {
const response = await sdk.events.listByDestination({
const response = await sdk.events.list({
tenantId: client.getTenantId(),
destinationId: destinationId,
});
return response?.data || [];
return response?.models || [];

Copilot AI Feb 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The status assertion can become a false-positive because it searches for any event with status in the tenant list. If the tenant already has historical events with status, this test can pass even if the event you just published never appears or never gets a status. Prefer capturing the eventId from publish.event() and polling sdk.events.get({ eventId }) until status is set, then assert on that specific event.

Copilot uses AI. Check for mistakes.
Comment thread spec-sdk-tests/tests/events.test.ts Outdated
Comment thread examples/demos/dashboard-integration/src/lib/outpost.ts Outdated
Comment on lines +20 to +50
/** Topic names used only for spec-SDK tests; they must not exist before/after. */
const TEST_ONLY_TOPIC_NAMES = [
'spec-sdk-test.placeholder',
'outpost.spec-test.topic',
'test.only.topic.management',
];

describe('Topics - List and sanity checks', () => {
it('should list topics and return an array of strings', async function () {
const client = createSdkClient();
const sdk = client.getSDK();

const topics = await sdk.topics.list();

expect(topics).to.be.an('array');
topics.forEach((t: string, i: number) => {
expect(t, `topic[${i}]`).to.be.a('string');
expect(t.length, `topic[${i}]`).to.be.greaterThan(0);
});
});

it('should not contain test-only placeholder topics (before/after sanity)', async function () {
const client = createSdkClient();
const sdk = client.getSDK();

const topics = await sdk.topics.list();
const set = new Set(topics);

for (const testTopic of TEST_ONLY_TOPIC_NAMES) {
expect(set.has(testTopic), `Topic "${testTopic}" should not exist in instance list`).to.be.false;
}

Copilot AI Feb 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test hard-codes topic names that “must not exist” on the target Outpost instance. Since topics are instance-configured, a real deployment could legitimately include one of these strings and the suite would fail for reasons unrelated to the API/SDK contract. Consider gating this check behind an env flag (or removing it) so default runs don’t assume a specific topic set.

Copilot uses AI. Check for mistakes.
- Remove Event status from Event schema (#689)
- Remove destination_id param from GET /events (#688)
- Set production server first in OpenAPI servers
- Simplify events tests; add sdk-defaults test for default server URL

Refs #688, #689

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel
vercel Bot temporarily deployed to Preview – outpost-website February 11, 2026 15:07 Inactive
@vercel
vercel Bot temporarily deployed to Preview – outpost-docs February 11, 2026 15:08 Inactive
@leggetter leggetter changed the title chore(sdks,docs): v0.13 SDK generation prep, upgrade guide, and spec tests chore(sdks,docs): v0.13 SDK generation prep, upgrade guide, spec fixes (#688, #689) Feb 11, 2026
leggetter and others added 2 commits February 11, 2026 15:25
…nts pagination, topics.list)

Co-authored-by: Cursor <cursoragent@cursor.com>
…ict topics check on env

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel
vercel Bot temporarily deployed to Preview – outpost-website February 11, 2026 15:26 Inactive
@vercel
vercel Bot temporarily deployed to Preview – outpost-docs February 11, 2026 15:27 Inactive
- Use repo-relative path in pagination-fixes-overlay.yaml extends (CI/contributors)
- Remove obsolete curl-events.sh section; document run-tests.sh behavior

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel
vercel Bot temporarily deployed to Preview – outpost-docs February 11, 2026 15:33 Inactive
@vercel
vercel Bot temporarily deployed to Preview – outpost-website February 11, 2026 15:33 Inactive
…ek pagination only)

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel
vercel Bot temporarily deployed to Preview – outpost-docs February 11, 2026 16:42 Inactive
@vercel
vercel Bot temporarily deployed to Preview – outpost-website February 11, 2026 16:42 Inactive
@leggetter
leggetter merged commit c8a4e0c into main Feb 11, 2026
4 checks passed
@leggetter
leggetter deleted the feature/sdk-v0.13-generation branch February 11, 2026 16:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants