From 6676e45429ff58fd05cfca5fdd8f6c306229152f Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Sun, 26 Jun 2022 13:03:43 +0800 Subject: [PATCH 1/2] plugins(wasm): Change the SHA-256 config key Use sha256 to match Bazel's http_file directive --- internal/cmd/generate.go | 4 ++-- internal/config/config.go | 4 ++-- .../testdata/wasm_plugin_sqlc_gen_greeter/sqlc.json | 2 +- internal/ext/wasm/wasm.go | 13 +++++-------- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/internal/cmd/generate.go b/internal/cmd/generate.go index 567e549783..82756b2254 100644 --- a/internal/cmd/generate.go +++ b/internal/cmd/generate.go @@ -328,8 +328,8 @@ func codegen(ctx context.Context, combo config.CombinedSettings, sql outPair, re } case plug.WASM != nil: handler = &wasm.Runner{ - URL: plug.WASM.URL, - Checksum: plug.WASM.Checksum, + URL: plug.WASM.URL, + SHA256: plug.WASM.SHA256, } default: return "", nil, fmt.Errorf("unsupported plugin type") diff --git a/internal/config/config.go b/internal/config/config.go index 1fc8f8432a..7791b40852 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -88,8 +88,8 @@ type Plugin struct { Cmd string `json:"cmd" yaml:"cmd"` } `json:"process" yaml:"process"` WASM *struct { - URL string `json:"url" yaml:"url"` - Checksum string `json:"checksum" yaml:"checksum"` + URL string `json:"url" yaml:"url"` + SHA256 string `json:"sha256" yaml:"sha256"` } `json:"wasm" yaml:"wasm"` } diff --git a/internal/endtoend/testdata/wasm_plugin_sqlc_gen_greeter/sqlc.json b/internal/endtoend/testdata/wasm_plugin_sqlc_gen_greeter/sqlc.json index 67cb5ab86c..7de14d4f85 100644 --- a/internal/endtoend/testdata/wasm_plugin_sqlc_gen_greeter/sqlc.json +++ b/internal/endtoend/testdata/wasm_plugin_sqlc_gen_greeter/sqlc.json @@ -18,7 +18,7 @@ "name": "greeter", "wasm": { "url": "https://github.com/kyleconroy/sqlc-gen-greeter/releases/download/v0.1.0/sqlc-gen-greeter.wasm", - "checksum": "sha256/afc486dac2068d741d7a4110146559d12a013fd0286f42a2fc7dcd802424ad07" + "sha256": "afc486dac2068d741d7a4110146559d12a013fd0286f42a2fc7dcd802424ad07" } } ] diff --git a/internal/ext/wasm/wasm.go b/internal/ext/wasm/wasm.go index ccd2fb8492..da04c370e8 100644 --- a/internal/ext/wasm/wasm.go +++ b/internal/ext/wasm/wasm.go @@ -38,19 +38,16 @@ func cacheDir() (string, error) { } type Runner struct { - URL string - Checksum string + URL string + SHA256 string } // Verify the provided sha256 is valid. func (r *Runner) parseChecksum() (string, error) { - if r.Checksum == "" { - return "", fmt.Errorf("missing checksum") + if r.SHA256 == "" { + return "", fmt.Errorf("missing integrity") } - if !strings.HasPrefix(r.Checksum, "sha256/") { - return "", fmt.Errorf("invalid checksum algo: %s", r.Checksum) - } - return strings.TrimPrefix(r.Checksum, "sha256/"), nil + return r.SHA256, nil } func (r *Runner) loadModule(ctx context.Context, engine *wasmtime.Engine) (*wasmtime.Module, error) { From e4c110b7e68b7d04fda7cf36baa38d1b41497921 Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Sun, 26 Jun 2022 13:07:52 +0800 Subject: [PATCH 2/2] Fix error message --- internal/ext/wasm/wasm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/ext/wasm/wasm.go b/internal/ext/wasm/wasm.go index da04c370e8..5278590ce9 100644 --- a/internal/ext/wasm/wasm.go +++ b/internal/ext/wasm/wasm.go @@ -45,7 +45,7 @@ type Runner struct { // Verify the provided sha256 is valid. func (r *Runner) parseChecksum() (string, error) { if r.SHA256 == "" { - return "", fmt.Errorf("missing integrity") + return "", fmt.Errorf("missing SHA-256 checksum") } return r.SHA256, nil }