Skip to content

docs(sdk): add Go SDK design specifications#6

Closed
rhuss wants to merge 1 commit into
go-sdkfrom
go-sdk-specs
Closed

docs(sdk): add Go SDK design specifications#6
rhuss wants to merge 1 commit into
go-sdkfrom
go-sdk-specs

Conversation

@rhuss

@rhuss rhuss commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Summary

Add design specifications from the spec-driven development process used to build the Go SDK.

This PR depends on #5 (the SDK itself) and adds 19 spec directories under sdk/go/specs/, each containing:

  • spec.md - Feature specification with acceptance scenarios
  • plan.md - Implementation plan with architecture decisions
  • research.md - Technical research and alternatives considered
  • data-model.md - Entity relationships and data structures

Question for maintainers: Should these specs be retained as living documentation, or removed after the SDK PR is reviewed? They document the rationale behind each design decision but are not required for the SDK to function.

File Tree

sdk/go/specs/
├── 001-project-setup/
├── 002-proto-generation/
├── 003-core-sdk/
├── 004-converter-dedup/
├── 005-fake-client/
├── 006-operator-api/
├── 007-ssh-tcp-config/
├── 008-policy-logs/
├── 009-ssh-tunnel-forward-opts/
├── 010-api-docs/
├── 011-tunnel-context-cleanup/
├── 012-typed-sandbox-policy/
├── 013-sandbox-name-resolution/
├── 014-local-port-listener/
├── 015-token-refresh-auth/
├── 016-edge-auth/
├── 017-gateway-config/
├── 018-oidc-login/
└── 018-sdk-dashboard-tui/

79 files, ~10k lines of design documentation.

Include the spec-driven development artifacts that document the design
decisions, architecture rationale, and research behind each SDK feature.

These specs served as the implementation blueprints and provide ongoing
design documentation. Retention in the repository is at the discretion
of upstream maintainers.

Assisted-By: 🤖 Claude Code
Signed-off-by: Roland Huß <rhuss@redhat.com>
@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 41dddf84-106f-44aa-aa69-bffc6f4eddb9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch go-sdk-specs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@rhuss

rhuss commented Jul 11, 2026

Copy link
Copy Markdown
Owner Author

Closing to recreate after PR #5 is recreated.

@rhuss rhuss closed this Jul 11, 2026
rhuss added a commit that referenced this pull request Jul 15, 2026
- Remove dead boolCount function that would fail golangci-lint (#1)
- Emit EventAdded for the first watch event instead of EventModified,
  matching k8s watch semantics (#7)
- Add mutex locking to all mock server methods that access the shared
  sandboxes map, fixing latent race conditions (#12)
- Skip HealthCheck integration test that calls an unimplemented stub (#13)
- Scope doc.go examples: mark sections for sub-clients not yet available
  in this PR with "available in a future release" (#4)
- Document Config.Timeout/RetryPolicy/Logger and WatchOptions fields
  as reserved for future use (#2, #6)

Signed-off-by: Roland Huß <rhuss@redhat.com>
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.

1 participant