Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validate that resources don't use urn or id as output properties #14637

Merged
merged 1 commit into from
Nov 23, 2023

Conversation

Frassle
Copy link
Member

@Frassle Frassle commented Nov 22, 2023

Description

Fixes #14631.

This adds a couple of new tests to codegen. Firstly to check that if you use "urn" or "id" as a resource output property we fail schema binding. This is because these clash with the urn and id fields that every resource already has to have.

Secondly a schema gen test that checks that urn and id do work in other places, i.e. resource inputs, nested types, etc.

Checklist

  • I have run make tidy to update any new dependencies
  • I have run make lint to verify my code passes the lint check
    • I have formatted my code using gofumpt
  • I have added tests that prove my fix is effective or that my feature works
  • I have run make changelog and committed the changelog/pending/<file> documenting my change
  • Yes, there are changes in this PR that warrants bumping the Pulumi Cloud API version

@pulumi-bot
Copy link
Contributor

pulumi-bot commented Nov 22, 2023

Changelog

[uncommitted] (2023-11-22)

Bug Fixes

  • [sdkgen] Schemas now validate that 'urn' and 'id' are not used as resource output properties.
    #14637

@Frassle Frassle force-pushed the fraser/urnid branch 2 times, most recently from 423ad11 to 4cb665b Compare November 22, 2023 10:45
@Frassle Frassle requested a review from a team November 22, 2023 10:45
@Frassle Frassle marked this pull request as ready for review November 22, 2023 10:45
@Frassle Frassle added this pull request to the merge queue Nov 22, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 22, 2023
@Frassle Frassle added this pull request to the merge queue Nov 23, 2023
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 23, 2023
@Zaid-Ajaj Zaid-Ajaj added this pull request to the merge queue Nov 23, 2023
Merged via the queue into master with commit 8b26393 Nov 23, 2023
41 of 44 checks passed
@Zaid-Ajaj Zaid-Ajaj deleted the fraser/urnid branch November 23, 2023 03:19
github-merge-queue bot pushed a commit that referenced this pull request Nov 30, 2023
### Features

- [cli/config] Include config values from ESC in `pulumi config`
  [#14560](#14560)

- [cli/config] Add commands for managing stack environments
  [#14628](#14628)

- [cli/config] Add a command to create an ESC environment from stack
config
  [#14634](#14634)

- [sdk/go] add optional display name and tag fields to project templates
  [#14587](#14587)

- [cli/plugin] Load policy packs in parallel on startup to reduce
startup time
  [#14495](#14495)

- [sdkgen/{go,nodejs,python}] Resource methods with plain: true outputs
can now return plain values without an Output wrapper. In particular,
this feature enables resource methods to serve as explicit provider
factories by returning preconfigured explicit providers.
  [#13592](#13592)


### Bug Fixes

- [auto/go] Fix a datarace in cloning git repos.
  [#14643](#14643)

- [auto/go] Fixes event stream lag on windows runtime
  [#14659](#14659)

- [engine] Engine now correctly handles any resource name.
  [#14107](#14107)

- [engine] Fix a panic in cancellation.
  [#14612](#14612)

- [engine] Fix root directory passed to langauge plugins when starting
pulumi in a subfolder.
  [#14684](#14684)

- [sdkgen] Schemas now validate that 'urn' and 'id' are not used as
resource output properties.
  [#14637](#14637)

- [sdkgen] Fixes marshalling the "plain" flag from object or resource
properties
  [#14648](#14648)

- [programgen/nodejs] Fix generated readFile function so that it
includes the encoding and returns a string
  [#14633](#14633)

- [sdkgen/{dotnet,go,nodejs,python}] No longer writing out name and
project from alias definitions into SDKs, only type
  [#14625](#14625)

- [sdk/go] Fix optional handling on nested props
  [#14629](#14629)

- [sdkgen/go] Fixes plain and optional properties for generated types
for Go SDKs using generics
  [#14616](#14616)

- [sdkgen/go] Generate non-plain type variants for types used as inputs
inside unions
  [#14679](#14679)

- [sdk/python] Introduces RuntimeError when we detect a cycle upon
adding dependencies to the graph. Additionally adds
"PULUMI_ERROR_ON_DEPENDENCY_CYCLES" as a new environment variable to
control this behavior. Set to `False` to return to the previous
behavior, which could potentially re-introduce infinite hangs for some
programs.
  [#14597](#14597)
pawelprazak added a commit to VirtusLab/besom that referenced this pull request Dec 3, 2023
pawelprazak added a commit to VirtusLab/besom that referenced this pull request Dec 4, 2023
blampe added a commit to pulumi/pulumi-go-provider that referenced this pull request Dec 15, 2023
Guards were added in pulumi/pulumi#14637 to
prevent resources from defining their own "urn" and "id" properties.

I ran into this because I mistakenly defined an ID property on my output
state, and didn't realize until much later when trying generate the
schema.
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.

Schema accepts invalid property names urn
3 participants