Document extension upload and import - #72
Conversation
6c048e0 to
4764988
Compare
12a1136 to
bf17fc0
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit bf17fc0. Configure here.
|
|
||
| variable "extension_zip_path" { | ||
| type = string | ||
| description = "Path to a Chrome extension ZIP with a Manifest V3 manifest." |
There was a problem hiding this comment.
Chrome brand in example text
Low Severity
The new extension_zip_path variable description names Chrome and Manifest V3. Public examples in this repo are expected to use generic wording instead of product or brand names, matching other examples that avoid company-specific references.
Additional Locations (2)
Triggered by learned rule: Examples must use generic names and URLs — no company-specific references
Reviewed by Cursor Bugbot for commit bf17fc0. Configure here.
6d28e8a to
d50f6f7
Compare
bf17fc0 to
11a1872
Compare
d50f6f7 to
979a552
Compare
11a1872 to
210546c
Compare
979a552 to
24bb022
Compare
1207b12 to
a7a7a38
Compare
54324d8 to
d4303ee
Compare
a7a7a38 to
df9604e
Compare
Add a Terraform 1.11-compatible extension example that tracks exact archive bytes with filesha256, publish the same snippet and import forms in generated Registry docs, and update the example index. This gives users a validated durable upload workflow without bundling a binary archive.
d4303ee to
88438e4
Compare
df9604e to
0e38db9
Compare


Summary
kernel_extensionexamplefilesha256Why this is v1 work
The durable extension lifecycle is implemented and acceptance-covered in the preceding stack. This small PR makes that surface usable and documents the required content-addressed workflow before v1 release.
Resource scope
Documentation and examples for
kernel_extensiononly. Provider behavior is unchanged.API contract notes
The example uploads a caller-supplied extension ZIP. It does not download Chrome Web Store archives or invoke any browser/session operation.
Terraform state semantics
source_pathis write-only and requires Terraform 1.11+source_sha256 = filesha256(source_path)is the durable signal for archive replacementSensitive fields
No secret values are introduced. The archive path is write-only; the checksum is non-sensitive durable state.
Import behavior
Generated docs show both supported forms:
<extension-id>for provider/API-key project resolution<project-id>/<extension-id>for explicit project scopeTests run
gofmt -l cmd internalgo test -short -timeout=2m ./...go vet ./...go mod verifygo mod tidy -diffterraform fmt -check -recursive examplesbash scripts/check-examples.sh(all six examples validated)bash scripts/check-docs.shbash scripts/check-markdown-links.shterraform planfor the extension examplegit diff --checkAcceptance status
No live API operation is needed for this docs-only PR. The preceding acceptance PR contains the guarded real upload, import, replacement, and delete lifecycle test; it remains a required pre-tag run with credentials.
Deferred concerns
GitHub issues
This PR does not resolve an issue.
#24and#25remain handled by the existing v1 architecture decisions.Note
Low Risk
Documentation and example Terraform only; no runtime or provider logic changes.
Overview
Documents the
kernel_extensioncontent-addressed upload workflow for v1 without changing provider behavior.Registry docs (
docs/resources/extension.md) now include a full example usage block (Terraform>= 1.11.0, variable for the ZIP path,source_path+source_sha256 = filesha256(...)) and an Import section for<extension-id>and<project-id>/<extension-id>.Adds a runnable extension example and matching
examples/resources/kernel_extensionsnippets (resource.tf,import.sh). The examples index lists the new example and clarifies that examples do not download extensions (wording tweak from “upload”).Reviewed by Cursor Bugbot for commit 0e38db9. Bugbot is set up for automated code reviews on this repo. Configure here.