Skip to content

Add durable extension client methods - #56

Open
IlyaasK wants to merge 1 commit into
hypeship/extension-schema-modelfrom
hypeship/extension-client-crud
Open

Add durable extension client methods#56
IlyaasK wants to merge 1 commit into
hypeship/extension-schema-modelfrom
hypeship/extension-client-crud

Conversation

@IlyaasK

@IlyaasK IlyaasK commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • expose project-scoped extension upload and delete through internal/kernelclient
  • disable SDK retries for both mutations so an ambiguous response cannot trigger a duplicate upload or repeated delete
  • keep extension archive download and Chrome Web Store download outside the provider-local client surface
  • extend the existing mutation contract test to prove method, path, project scope, retry count, and one-request behavior

Why this is v1 work

This is the thin durable SDK boundary needed by the planned kernel_extension resource. It adds no Terraform resource registration or lifecycle behavior yet, keeping the stacked change independently reviewable.

Intentionally unsupported

  • archive download
  • Chrome Web Store download
  • runtime browser/session operations
  • SDK fallback HTTP calls
  • automatic recovery from an upload response lost after the server commits

Verification

  • gofmt -l cmd internal
  • go test -count=20 ./internal/kernelclient
  • go test -race -count=1 ./internal/kernelclient
  • go test -count=1 -short -timeout=2m ./...
  • go vet ./...
  • go mod verify
  • go mod tidy -diff
  • terraform fmt -check -recursive examples
  • bash scripts/check-docs.sh
  • bash scripts/check-examples.sh
  • bash scripts/check-markdown-links.sh
  • git diff --check HEAD

No live acceptance test is needed for this client-boundary slice; request behavior is verified with an in-process HTTP transport.


Note

Low Risk
Client-wrapper and test-only changes with no Terraform resources or auth/data-path changes; mutation no-retry behavior matches existing patterns.

Overview
Adds project-scoped extension upload and delete on internal/kernelclient.Clients, mirroring other durable mutations (e.g. browser pools).

UploadExtension posts to /extensions with ExtensionUploadParams; DeleteExtension deletes /extensions/{id}. Both use scope(projectID, noMutationRetries()) so ambiguous failures cannot trigger duplicate uploads or repeated deletes.

Extends the mutation contract table test for method, path, project header, retry count 0, and single-request behavior. Adds a reflect test that DownloadExtension and DownloadExtensionFromChromeStore are not exposed on Clients, keeping archive/Chrome Web Store download off this boundary for the planned kernel_extension resource slice.

Reviewed by Cursor Bugbot for commit 2daf666. Bugbot is set up for automated code reviews on this repo. Configure here.

@IlyaasK
IlyaasK requested review from Sayan- and tnsardesai and removed request for Sayan- and tnsardesai July 11, 2026 03:29
@IlyaasK
IlyaasK force-pushed the hypeship/extension-schema-model branch from ffc4199 to 96b446b Compare July 13, 2026 13:34
@IlyaasK
IlyaasK force-pushed the hypeship/extension-client-crud branch from a5e67a0 to 5a68610 Compare July 13, 2026 13:34
@IlyaasK
IlyaasK force-pushed the hypeship/extension-schema-model branch from 96b446b to 9f6a486 Compare July 13, 2026 14:32
@IlyaasK
IlyaasK force-pushed the hypeship/extension-client-crud branch 2 times, most recently from 770d29a to c77fb07 Compare July 13, 2026 15:39
@IlyaasK
IlyaasK force-pushed the hypeship/extension-schema-model branch from 9f6a486 to c82fb95 Compare July 13, 2026 15:39
@IlyaasK
IlyaasK force-pushed the hypeship/extension-schema-model branch from c82fb95 to e55300c Compare July 20, 2026 19:38
@IlyaasK
IlyaasK force-pushed the hypeship/extension-client-crud branch 3 times, most recently from 88de2e6 to 4b9da7f Compare July 21, 2026 18:10
@IlyaasK
IlyaasK force-pushed the hypeship/extension-schema-model branch from 13eafa5 to a6bc3cf Compare July 21, 2026 19:51
@IlyaasK
IlyaasK force-pushed the hypeship/extension-client-crud branch from 4b9da7f to 1c82564 Compare July 21, 2026 19:51
@IlyaasK
IlyaasK force-pushed the hypeship/extension-schema-model branch from a6bc3cf to 598f3b6 Compare July 21, 2026 20:15
@IlyaasK
IlyaasK force-pushed the hypeship/extension-client-crud branch from 1c82564 to 2daf666 Compare July 21, 2026 20:15
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