Explain canonical project import IDs - #101
Merged
Merged
Conversation
IlyaasK
marked this pull request as ready for review
July 13, 2026 14:19
IlyaasK
force-pushed
the
hypeship/api-key-data-source
branch
from
July 13, 2026 14:32
8aee855 to
5b55393
Compare
IlyaasK
force-pushed
the
hypeship/project-import-canonical-id-hint
branch
2 times, most recently
from
July 13, 2026 15:39
4da6ba5 to
a869ccc
Compare
IlyaasK
force-pushed
the
hypeship/api-key-data-source
branch
from
July 20, 2026 19:38
3f5505e to
d88ea70
Compare
IlyaasK
force-pushed
the
hypeship/project-import-canonical-id-hint
branch
from
July 20, 2026 19:38
a869ccc to
1530b0b
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 1530b0b. Configure here.
IlyaasK
force-pushed
the
hypeship/api-key-data-source
branch
from
July 21, 2026 14:46
d88ea70 to
f5cd0ba
Compare
IlyaasK
force-pushed
the
hypeship/project-import-canonical-id-hint
branch
from
July 21, 2026 14:46
1530b0b to
b555444
Compare
IlyaasK
force-pushed
the
hypeship/api-key-data-source
branch
from
July 21, 2026 18:10
f5cd0ba to
bdfc3de
Compare
IlyaasK
force-pushed
the
hypeship/project-import-canonical-id-hint
branch
2 times, most recently
from
July 21, 2026 19:51
a9f9b05 to
5bff054
Compare
IlyaasK
force-pushed
the
hypeship/api-key-data-source
branch
from
July 21, 2026 20:15
099bdff to
f3c4de0
Compare
IlyaasK
force-pushed
the
hypeship/project-import-canonical-id-hint
branch
from
July 21, 2026 20:15
5bff054 to
3eadb5e
Compare
Make project read identity mismatches tell users how to recover from a name-based import without silently changing Terraform state. Exercise the imported-name lookup and canonical-ID guidance in the focused read test.
IlyaasK
force-pushed
the
hypeship/project-import-canonical-id-hint
branch
from
July 27, 2026 18:25
3eadb5e to
2a1b98a
Compare
Sayan-
approved these changes
Jul 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Why
Kernel project GET accepts an ID or name, but Terraform import requires a stable
canonical ID. Importing by name can therefore resolve successfully and then hit
the provider's identity-mismatch guard. The diagnostic now reports the canonical
ID and explains how to import it.
This is a provider-only usability change. It does not require an API or SDK
change and does not expand the project resource contract.
Terraform semantics
Tests run
gofmt -l cmd internalgo test -short -timeout=2m ./internal/resources/projectgo test -race -short -timeout=2m ./internal/resources/projectgo test -short -timeout=2m ./...go vet ./...terraform fmt -check -recursive examplesbash scripts/check-docs.shgit diff --check origin/main...HEADAcceptance tests were not run because the change only affects a deterministic
local diagnostic and adds no live API behavior.
Intentionally unchanged