From dd273a56483ee9a90c1998208a5352d16b37f3dd Mon Sep 17 00:00:00 2001 From: AlejandroFabianCampos Date: Wed, 23 Sep 2026 11:02:50 -0500 Subject: [PATCH 1/2] fix: use placeholder endpoint ids and hostnames in docs, examples and tests --- CHANGELOG.md | 2 +- docs/index.md | 2 +- docs/resources/endpoint_domain_mask.md | 2 +- docs/resources/endpoint_ip.md | 2 +- docs/resources/endpoint_jwt.md | 2 +- docs/resources/endpoint_method_rate_limit.md | 2 +- docs/resources/endpoint_rate_limits.md | 2 +- docs/resources/endpoint_referrer.md | 2 +- docs/resources/endpoint_request_filter.md | 2 +- docs/resources/endpoint_token.md | 2 +- .../quicknode_endpoint_domain_mask/import.sh | 2 +- .../resources/quicknode_endpoint_ip/import.sh | 2 +- .../quicknode_endpoint_jwt/import.sh | 2 +- .../import.sh | 2 +- .../quicknode_endpoint_rate_limits/import.sh | 2 +- .../quicknode_endpoint_referrer/import.sh | 2 +- .../import.sh | 2 +- .../quicknode_endpoint_token/import.sh | 2 +- internal/client/client_test.go | 12 +++--- internal/client/endpoint_test.go | 38 +++++++++---------- internal/provider/jwt_resource.go | 2 +- .../provider/method_rate_limit_resource.go | 2 +- internal/provider/request_filter_resource.go | 2 +- internal/provider/security_entry_resource.go | 2 +- internal/provider/token_resource.go | 2 +- templates/index.md.tmpl | 2 +- 26 files changed, 49 insertions(+), 49 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9528f32..2b56b35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,7 +25,7 @@ NOTES: left out of the configuration keeps the value the endpoint already has. * `quicknode_endpoint.ip_custom_header` names the header an endpoint behind a proxy reads the caller's IP address from. -* Allowlist entries are imported by value, as `652052/203.0.113.7`. +* Allowlist entries are imported by value, as `123456/203.0.113.7`. * Adding an allowlist entry while its toggle is disabled warns and succeeds, so an allowlist can be built before enforcement is turned on. * `quicknode_endpoint.label` cannot be cleared once set, so removing the attribute diff --git a/docs/index.md b/docs/index.md index 9f536f7..5a6e664 100644 --- a/docs/index.md +++ b/docs/index.md @@ -65,7 +65,7 @@ Endpoints expose both forms: The safe form carries the literal `TOKEN` where the credential belongs: ``` -https://polished-damp-grass.hype-testnet.quiknode.pro/TOKEN/evm +https://example-name.hype-testnet.quiknode.pro/TOKEN/evm ``` It keeps the real URL's shape, so substituting a token reproduces a working diff --git a/docs/resources/endpoint_domain_mask.md b/docs/resources/endpoint_domain_mask.md index a424fc5..53bafcb 100644 --- a/docs/resources/endpoint_domain_mask.md +++ b/docs/resources/endpoint_domain_mask.md @@ -51,5 +51,5 @@ The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/c ```shell # Import by the domain itself, as "/". -terraform import quicknode_endpoint_domain_mask.rpc 652052/rpc.example.com +terraform import quicknode_endpoint_domain_mask.rpc 123456/rpc.example.com ``` diff --git a/docs/resources/endpoint_ip.md b/docs/resources/endpoint_ip.md index 65e976e..e8f9425 100644 --- a/docs/resources/endpoint_ip.md +++ b/docs/resources/endpoint_ip.md @@ -59,5 +59,5 @@ The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/c ```shell # Import by the address itself, as "/". -terraform import quicknode_endpoint_ip.office 652052/203.0.113.7 +terraform import quicknode_endpoint_ip.office 123456/203.0.113.7 ``` diff --git a/docs/resources/endpoint_jwt.md b/docs/resources/endpoint_jwt.md index 9a7fb46..cfc5f38 100644 --- a/docs/resources/endpoint_jwt.md +++ b/docs/resources/endpoint_jwt.md @@ -59,5 +59,5 @@ The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/c ```shell # Import by the key's name, as "/". -terraform import quicknode_endpoint_jwt.signer 652052/signer +terraform import quicknode_endpoint_jwt.signer 123456/signer ``` diff --git a/docs/resources/endpoint_method_rate_limit.md b/docs/resources/endpoint_method_rate_limit.md index efd941e..82c9237 100644 --- a/docs/resources/endpoint_method_rate_limit.md +++ b/docs/resources/endpoint_method_rate_limit.md @@ -69,5 +69,5 @@ The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/c ```shell # A limiter has no natural name, so it is imported by id, as # "/". -terraform import quicknode_endpoint_method_rate_limit.heavy_reads 652052/a1b2c3d4-5e6f-7890-abcd-ef1234567890 +terraform import quicknode_endpoint_method_rate_limit.heavy_reads 123456/a1b2c3d4-5e6f-7890-abcd-ef1234567890 ``` diff --git a/docs/resources/endpoint_rate_limits.md b/docs/resources/endpoint_rate_limits.md index f036413..2963c4d 100644 --- a/docs/resources/endpoint_rate_limits.md +++ b/docs/resources/endpoint_rate_limits.md @@ -70,5 +70,5 @@ The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/c ```shell # Rate limits belong to the endpoint, so the address is just the endpoint id. -terraform import quicknode_endpoint_rate_limits.api 652052 +terraform import quicknode_endpoint_rate_limits.api 123456 ``` diff --git a/docs/resources/endpoint_referrer.md b/docs/resources/endpoint_referrer.md index d61e4b4..9f4b50e 100644 --- a/docs/resources/endpoint_referrer.md +++ b/docs/resources/endpoint_referrer.md @@ -51,5 +51,5 @@ The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/c ```shell # Import by the referrer itself, as "/". -terraform import quicknode_endpoint_referrer.app 652052/https://app.example.com +terraform import quicknode_endpoint_referrer.app 123456/https://app.example.com ``` diff --git a/docs/resources/endpoint_request_filter.md b/docs/resources/endpoint_request_filter.md index e5142bf..2afa5c9 100644 --- a/docs/resources/endpoint_request_filter.md +++ b/docs/resources/endpoint_request_filter.md @@ -57,5 +57,5 @@ The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/c # A filter has no natural name, so it is imported by id, as # "/". Read the ids from the endpoint's security # settings in the Quicknode dashboard. -terraform import quicknode_endpoint_request_filter.read_only 652052/f1e2d3c4-5b6a-7890-abcd-ef1234567890 +terraform import quicknode_endpoint_request_filter.read_only 123456/f1e2d3c4-5b6a-7890-abcd-ef1234567890 ``` diff --git a/docs/resources/endpoint_token.md b/docs/resources/endpoint_token.md index 1cbad37..3e9d052 100644 --- a/docs/resources/endpoint_token.md +++ b/docs/resources/endpoint_token.md @@ -58,5 +58,5 @@ The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/c ```shell # Tokens are imported by id, as "/", which keeps the # credential out of shell history. -terraform import quicknode_endpoint_token.indexer 652052/d3312bd2-c1a2-4d89-865f-11c99fa3863a +terraform import quicknode_endpoint_token.indexer 123456/e5d4c3b2-a1f0-4876-9432-10fedcba9876 ``` diff --git a/examples/resources/quicknode_endpoint_domain_mask/import.sh b/examples/resources/quicknode_endpoint_domain_mask/import.sh index 8f50da9..206f94f 100644 --- a/examples/resources/quicknode_endpoint_domain_mask/import.sh +++ b/examples/resources/quicknode_endpoint_domain_mask/import.sh @@ -1,2 +1,2 @@ # Import by the domain itself, as "/". -terraform import quicknode_endpoint_domain_mask.rpc 652052/rpc.example.com +terraform import quicknode_endpoint_domain_mask.rpc 123456/rpc.example.com diff --git a/examples/resources/quicknode_endpoint_ip/import.sh b/examples/resources/quicknode_endpoint_ip/import.sh index 345268b..bf56563 100644 --- a/examples/resources/quicknode_endpoint_ip/import.sh +++ b/examples/resources/quicknode_endpoint_ip/import.sh @@ -1,2 +1,2 @@ # Import by the address itself, as "/". -terraform import quicknode_endpoint_ip.office 652052/203.0.113.7 +terraform import quicknode_endpoint_ip.office 123456/203.0.113.7 diff --git a/examples/resources/quicknode_endpoint_jwt/import.sh b/examples/resources/quicknode_endpoint_jwt/import.sh index 5db104b..a0b3eb1 100644 --- a/examples/resources/quicknode_endpoint_jwt/import.sh +++ b/examples/resources/quicknode_endpoint_jwt/import.sh @@ -1,2 +1,2 @@ # Import by the key's name, as "/". -terraform import quicknode_endpoint_jwt.signer 652052/signer +terraform import quicknode_endpoint_jwt.signer 123456/signer diff --git a/examples/resources/quicknode_endpoint_method_rate_limit/import.sh b/examples/resources/quicknode_endpoint_method_rate_limit/import.sh index 9f593ab..50dad00 100644 --- a/examples/resources/quicknode_endpoint_method_rate_limit/import.sh +++ b/examples/resources/quicknode_endpoint_method_rate_limit/import.sh @@ -1,3 +1,3 @@ # A limiter has no natural name, so it is imported by id, as # "/". -terraform import quicknode_endpoint_method_rate_limit.heavy_reads 652052/a1b2c3d4-5e6f-7890-abcd-ef1234567890 +terraform import quicknode_endpoint_method_rate_limit.heavy_reads 123456/a1b2c3d4-5e6f-7890-abcd-ef1234567890 diff --git a/examples/resources/quicknode_endpoint_rate_limits/import.sh b/examples/resources/quicknode_endpoint_rate_limits/import.sh index a4d5f8c..0617274 100644 --- a/examples/resources/quicknode_endpoint_rate_limits/import.sh +++ b/examples/resources/quicknode_endpoint_rate_limits/import.sh @@ -1,2 +1,2 @@ # Rate limits belong to the endpoint, so the address is just the endpoint id. -terraform import quicknode_endpoint_rate_limits.api 652052 +terraform import quicknode_endpoint_rate_limits.api 123456 diff --git a/examples/resources/quicknode_endpoint_referrer/import.sh b/examples/resources/quicknode_endpoint_referrer/import.sh index 32e5057..a7fbea4 100644 --- a/examples/resources/quicknode_endpoint_referrer/import.sh +++ b/examples/resources/quicknode_endpoint_referrer/import.sh @@ -1,2 +1,2 @@ # Import by the referrer itself, as "/". -terraform import quicknode_endpoint_referrer.app 652052/https://app.example.com +terraform import quicknode_endpoint_referrer.app 123456/https://app.example.com diff --git a/examples/resources/quicknode_endpoint_request_filter/import.sh b/examples/resources/quicknode_endpoint_request_filter/import.sh index 5f18eea..13f33df 100644 --- a/examples/resources/quicknode_endpoint_request_filter/import.sh +++ b/examples/resources/quicknode_endpoint_request_filter/import.sh @@ -1,4 +1,4 @@ # A filter has no natural name, so it is imported by id, as # "/". Read the ids from the endpoint's security # settings in the Quicknode dashboard. -terraform import quicknode_endpoint_request_filter.read_only 652052/f1e2d3c4-5b6a-7890-abcd-ef1234567890 +terraform import quicknode_endpoint_request_filter.read_only 123456/f1e2d3c4-5b6a-7890-abcd-ef1234567890 diff --git a/examples/resources/quicknode_endpoint_token/import.sh b/examples/resources/quicknode_endpoint_token/import.sh index e7caa3a..35ddab7 100644 --- a/examples/resources/quicknode_endpoint_token/import.sh +++ b/examples/resources/quicknode_endpoint_token/import.sh @@ -1,3 +1,3 @@ # Tokens are imported by id, as "/", which keeps the # credential out of shell history. -terraform import quicknode_endpoint_token.indexer 652052/d3312bd2-c1a2-4d89-865f-11c99fa3863a +terraform import quicknode_endpoint_token.indexer 123456/e5d4c3b2-a1f0-4876-9432-10fedcba9876 diff --git a/internal/client/client_test.go b/internal/client/client_test.go index a6f762c..fb63902 100644 --- a/internal/client/client_test.go +++ b/internal/client/client_test.go @@ -13,8 +13,8 @@ func TestRedactEndpointURL(t *testing.T) { }{ { name: "token followed by a chain suffix", - raw: "https://polished-damp-grass.hype-testnet.quiknode.pro/abc123/evm", - want: "https://polished-damp-grass.hype-testnet.quiknode.pro/TOKEN/evm", + raw: "https://example-name.hype-testnet.quiknode.pro/abc123/evm", + want: "https://example-name.hype-testnet.quiknode.pro/TOKEN/evm", }, { name: "token with no suffix", @@ -23,8 +23,8 @@ func TestRedactEndpointURL(t *testing.T) { }, { name: "trailing slash after the token", - raw: "https://frosty-capable-pallet.btc.quiknode.pro/abc123/", - want: "https://frosty-capable-pallet.btc.quiknode.pro/TOKEN/", + raw: "https://example-name.btc.quiknode.pro/abc123/", + want: "https://example-name.btc.quiknode.pro/TOKEN/", }, { name: "websocket scheme", @@ -57,8 +57,8 @@ func TestRedactEndpointURL(t *testing.T) { // suffix the chain appends after the token. func TestRedactedURLKeepsItsShape(t *testing.T) { for _, raw := range []string{ - "https://polished-damp-grass.hype-testnet.quiknode.pro/abc123/evm", - "https://frosty-capable-pallet.btc.quiknode.pro/abc123/", + "https://example-name.hype-testnet.quiknode.pro/abc123/evm", + "https://example-name.btc.quiknode.pro/abc123/", "wss://example-name.quiknode.pro/abc123", } { redacted := RedactEndpointURL(raw) diff --git a/internal/client/endpoint_test.go b/internal/client/endpoint_test.go index bf93f21..2fda69d 100644 --- a/internal/client/endpoint_test.go +++ b/internal/client/endpoint_test.go @@ -10,19 +10,19 @@ import ( // hypeEndpointBody mirrors a live GET /v0/endpoints/{id} response for a chain // that appends a path suffix after the token. The token is fabricated. -const hypeEndpointBody = `{"data":{"id":"652052","label":null,"chain":"hype","network":"hype-testnet", -"http_url":"https://polished-damp-grass.hype-testnet.quiknode.pro/TOKENVALUE/evm", -"wss_url":"wss://polished-damp-grass.hype-testnet.quiknode.pro/TOKENVALUE/evm", +const hypeEndpointBody = `{"data":{"id":"123456","label":null,"chain":"hype","network":"hype-testnet", +"http_url":"https://example-name.hype-testnet.quiknode.pro/TOKENVALUE/evm", +"wss_url":"wss://example-name.hype-testnet.quiknode.pro/TOKENVALUE/evm", "security":{"options":{"tokens":true,"cors":true}, -"tokens":[{"id":"d3312bd2-c1a2-4d89-865f-11c99fa3863a","token":"TOKENVALUE"}], +"tokens":[{"id":"e5d4c3b2-a1f0-4876-9432-10fedcba9876","token":"TOKENVALUE"}], "jwts":null,"referrers":null,"domain_masks":null,"ips":null,"request_filters":null}, "status":"active","rate_limits":{"rate_limit_by_ip":false,"account":-1,"rps":-1,"rpd":-1,"rpm":-1}, "tags":[{"tag_id":7,"label":"prod"}],"is_multichain":false}}` // bitcoinEndpointBody mirrors a live response for a chain with no WebSocket // support and no path suffix. -const bitcoinEndpointBody = `{"data":{"id":"613071","label":"ledger","chain":"btc","network":"btc", -"http_url":"https://frosty-capable-pallet.btc.quiknode.pro/TOKENVALUE/","wss_url":null, +const bitcoinEndpointBody = `{"data":{"id":"123457","label":"ledger","chain":"btc","network":"btc", +"http_url":"https://example-name.btc.quiknode.pro/TOKENVALUE/","wss_url":null, "security":{"options":{"tokens":true},"tokens":[{"id":"abc","token":"TOKENVALUE"}]}, "status":"paused","tags":[],"is_multichain":false}}` @@ -47,26 +47,26 @@ func newTestClient(t *testing.T, body string) *Client { } func TestGetEndpointWithPathSuffix(t *testing.T) { - endpoint, err := newTestClient(t, hypeEndpointBody).GetEndpoint(context.Background(), "652052") + endpoint, err := newTestClient(t, hypeEndpointBody).GetEndpoint(context.Background(), "123456") if err != nil { t.Fatalf("GetEndpoint: %v", err) } - const wantWorking = "https://polished-damp-grass.hype-testnet.quiknode.pro/TOKENVALUE/evm" + const wantWorking = "https://example-name.hype-testnet.quiknode.pro/TOKENVALUE/evm" if endpoint.HTTPURLWithToken != wantWorking { t.Errorf("HTTPURLWithToken = %q, want %q", endpoint.HTTPURLWithToken, wantWorking) } - if endpoint.WSSURLWithToken != "wss://polished-damp-grass.hype-testnet.quiknode.pro/TOKENVALUE/evm" { + if endpoint.WSSURLWithToken != "wss://example-name.hype-testnet.quiknode.pro/TOKENVALUE/evm" { t.Errorf("WSSURLWithToken = %q", endpoint.WSSURLWithToken) } - if endpoint.SafeWSSURL != "wss://polished-damp-grass.hype-testnet.quiknode.pro/TOKEN/evm" { + if endpoint.SafeWSSURL != "wss://example-name.hype-testnet.quiknode.pro/TOKEN/evm" { t.Errorf("SafeWSSURL = %q", endpoint.SafeWSSURL) } // The redacted URL keeps the real one's shape, so substituting a token // reproduces it exactly. That is what the placeholder buys over cutting // the token out: this chain puts a suffix after it. - const wantRedacted = "https://polished-damp-grass.hype-testnet.quiknode.pro/TOKEN/evm" + const wantRedacted = "https://example-name.hype-testnet.quiknode.pro/TOKEN/evm" if endpoint.SafeHTTPURL != wantRedacted { t.Errorf("SafeHTTPURL = %q, want %q", endpoint.SafeHTTPURL, wantRedacted) } @@ -86,7 +86,7 @@ func TestGetEndpointWithPathSuffix(t *testing.T) { } func TestGetEndpointWithoutWebsocket(t *testing.T) { - endpoint, err := newTestClient(t, bitcoinEndpointBody).GetEndpoint(context.Background(), "613071") + endpoint, err := newTestClient(t, bitcoinEndpointBody).GetEndpoint(context.Background(), "123457") if err != nil { t.Fatalf("GetEndpoint: %v", err) } @@ -94,10 +94,10 @@ func TestGetEndpointWithoutWebsocket(t *testing.T) { if endpoint.SafeWSSURL != "" || endpoint.WSSURLWithToken != "" { t.Errorf("SafeWSSURL = %q, WSSURLWithToken = %q, want both empty", endpoint.SafeWSSURL, endpoint.WSSURLWithToken) } - if endpoint.HTTPURLWithToken != "https://frosty-capable-pallet.btc.quiknode.pro/TOKENVALUE/" { + if endpoint.HTTPURLWithToken != "https://example-name.btc.quiknode.pro/TOKENVALUE/" { t.Errorf("HTTPURLWithToken = %q", endpoint.HTTPURLWithToken) } - if endpoint.SafeHTTPURL != "https://frosty-capable-pallet.btc.quiknode.pro/TOKEN/" { + if endpoint.SafeHTTPURL != "https://example-name.btc.quiknode.pro/TOKEN/" { t.Errorf("SafeHTTPURL = %q", endpoint.SafeHTTPURL) } if endpoint.Status != "paused" || endpoint.Label != "ledger" { @@ -116,19 +116,19 @@ func TestGetEndpointRejectsEnvelopeError(t *testing.T) { // liveEndpointBody is a verbatim GET /v0/endpoints/{id} response with the token // replaced. It carries ipCustomHeader and responseLogging, which the published // spec either mistypes or omits. -const liveEndpointBody = `{"data":{"id":"652052","label":null,"chain":"hype","network":"hype-testnet",` + - `"http_url":"https://polished-damp-grass.hype-testnet.quiknode.pro/TOKENVALUE/evm",` + - `"wss_url":"wss://polished-damp-grass.hype-testnet.quiknode.pro/TOKENVALUE/evm",` + +const liveEndpointBody = `{"data":{"id":"123456","label":null,"chain":"hype","network":"hype-testnet",` + + `"http_url":"https://example-name.hype-testnet.quiknode.pro/TOKENVALUE/evm",` + + `"wss_url":"wss://example-name.hype-testnet.quiknode.pro/TOKENVALUE/evm",` + `"security":{"options":{"tokens":true,"referrers":false,"jwts":false,"ips":false,` + `"domainMasks":false,"hsts":false,"cors":true,"responseLogging":true,` + `"requestFilters":false,"ipCustomHeader":{"value":null}},` + - `"tokens":[{"id":"d3312bd2-c1a2-4d89-865f-11c99fa3863a","token":"TOKENVALUE"}],` + + `"tokens":[{"id":"e5d4c3b2-a1f0-4876-9432-10fedcba9876","token":"TOKENVALUE"}],` + `"jwts":null,"referrers":null,"domain_masks":null,"ips":null,"request_filters":null},` + `"status":"active","rate_limits":{"rate_limit_by_ip":false,"account":-1,"rps":-1,"rpd":-1,"rpm":-1},` + `"tags":[],"is_multichain":false}}` func TestGetEndpointDecodesLiveBody(t *testing.T) { - endpoint, err := newTestClient(t, liveEndpointBody).GetEndpoint(context.Background(), "652052") + endpoint, err := newTestClient(t, liveEndpointBody).GetEndpoint(context.Background(), "123456") if err != nil { t.Fatalf("GetEndpoint on a verbatim live body: %v", err) } diff --git a/internal/provider/jwt_resource.go b/internal/provider/jwt_resource.go index 59bad75..f427549 100644 --- a/internal/provider/jwt_resource.go +++ b/internal/provider/jwt_resource.go @@ -171,7 +171,7 @@ func (r *jwtResource) ImportState(ctx context.Context, req resource.ImportStateR if !found || endpointID == "" || name == "" { resp.Diagnostics.AddError( "Unexpected import address", - fmt.Sprintf("Import a JWT signing key as \"/\", for example \"652052/signer\". Got %q.", req.ID), + fmt.Sprintf("Import a JWT signing key as \"/\", for example \"123456/signer\". Got %q.", req.ID), ) return } diff --git a/internal/provider/method_rate_limit_resource.go b/internal/provider/method_rate_limit_resource.go index 24e680c..043b736 100644 --- a/internal/provider/method_rate_limit_resource.go +++ b/internal/provider/method_rate_limit_resource.go @@ -234,7 +234,7 @@ func (r *methodRateLimitResource) ImportState(ctx context.Context, req resource. if !found || endpointID == "" || limiterID == "" { resp.Diagnostics.AddError( "Unexpected import address", - fmt.Sprintf("Import a method rate limit as \"/\", for example \"652052/a1b2c3d4-...\". Got %q.", req.ID), + fmt.Sprintf("Import a method rate limit as \"/\", for example \"123456/a1b2c3d4-...\". Got %q.", req.ID), ) return } diff --git a/internal/provider/request_filter_resource.go b/internal/provider/request_filter_resource.go index 9afae5d..209f4d4 100644 --- a/internal/provider/request_filter_resource.go +++ b/internal/provider/request_filter_resource.go @@ -176,7 +176,7 @@ func (r *requestFilterResource) ImportState(ctx context.Context, req resource.Im if !found || endpointID == "" || filterID == "" { resp.Diagnostics.AddError( "Unexpected import address", - fmt.Sprintf("Import a request filter as \"/\", for example \"652052/f1e2d3c4-...\". Got %q.", req.ID), + fmt.Sprintf("Import a request filter as \"/\", for example \"123456/f1e2d3c4-...\". Got %q.", req.ID), ) return } diff --git a/internal/provider/security_entry_resource.go b/internal/provider/security_entry_resource.go index d32600f..10f670e 100644 --- a/internal/provider/security_entry_resource.go +++ b/internal/provider/security_entry_resource.go @@ -224,7 +224,7 @@ func (r *securityEntryResource) ImportState(ctx context.Context, req resource.Im if !found || endpointID == "" || value == "" { resp.Diagnostics.AddError( "Unexpected import address", - fmt.Sprintf("Import a %s as \"/<%s>\", for example \"652052/%s\". Got %q.", r.kind.noun, r.kind.attribute, importExample(r.kind.attribute), req.ID), + fmt.Sprintf("Import a %s as \"/<%s>\", for example \"123456/%s\". Got %q.", r.kind.noun, r.kind.attribute, importExample(r.kind.attribute), req.ID), ) return } diff --git a/internal/provider/token_resource.go b/internal/provider/token_resource.go index 37146c8..068590f 100644 --- a/internal/provider/token_resource.go +++ b/internal/provider/token_resource.go @@ -149,7 +149,7 @@ func (r *endpointTokenResource) ImportState(ctx context.Context, req resource.Im if !found || endpointID == "" || tokenID == "" { resp.Diagnostics.AddError( "Unexpected import address", - fmt.Sprintf("Import an endpoint token as \"/\", for example \"652052/d3312bd2-...\". Got %q.", req.ID), + fmt.Sprintf("Import an endpoint token as \"/\", for example \"123456/e5d4c3b2-...\". Got %q.", req.ID), ) return } diff --git a/templates/index.md.tmpl b/templates/index.md.tmpl index 5468fe3..92a334c 100644 --- a/templates/index.md.tmpl +++ b/templates/index.md.tmpl @@ -53,7 +53,7 @@ Endpoints expose both forms: The safe form carries the literal `TOKEN` where the credential belongs: ``` -https://polished-damp-grass.hype-testnet.quiknode.pro/TOKEN/evm +https://example-name.hype-testnet.quiknode.pro/TOKEN/evm ``` It keeps the real URL's shape, so substituting a token reproduces a working From 240d329837f3cbfdc08f5ff4c1c3d7d5cc15258c Mon Sep 17 00:00:00 2001 From: AlejandroFabianCampos Date: Wed, 23 Sep 2026 11:03:05 -0500 Subject: [PATCH 2/2] fix: word the changelog notes as first-release behaviour --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b56b35..8bd37f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ NOTES: * Allowlist entries are imported by value, as `123456/203.0.113.7`. * Adding an allowlist entry while its toggle is disabled warns and succeeds, so an allowlist can be built before enforcement is turned on. -* `quicknode_endpoint.label` cannot be cleared once set, so removing the attribute +* `quicknode_endpoint.label` cannot be cleared once set. Removing the attribute leaves the endpoint's label in place. -* `quicknode_endpoint_jwt` takes `kid` as an input. The Admin API requires it when - the signing key is registered. +* `quicknode_endpoint_jwt.kid` is required, and matches the `kid` header of the + tokens signed with the corresponding private key.