pulumi/tests/integration
Fraser Waters c7ed4024ff Support for integers on the wire and state protocol
An exploration into how we could support int64 as well as float64 as a
first class type in Pulumi.

There's some inherit trickiness with this because we use JSON in a few
places, state files most obviously but `PropertyValue` on the wire is
using the protobuf `Struct` and `Value` types which are just mappings to
JSON as well.

JSON doesn't have an int64 type, and while the Go JSON marshaller can
read/write int64s it's not a great behaviour to rely on given mixed
support for that across languages. Further the protobuf `Value` type
only supports float64s.

So we support integers similar to our other special types (like assets)
and wrap them in an object with a special signature field. The value
itself is either a number (if it can safely roundtrip to float64 and
back again) or a string.

Providers, SDKs and the engine communicate support for integers via
`AcceptsIntegers` fields in their interfaces (or similar). When
transmitting to a peer that doesn't support integers (e.g. an old SDK,
or old provider) all integer values are mapped back to standard number
values.

As this changes the serialisation of property values in the state file
it will trigger errors if old engines try to load a state file
containing integers.
2024-08-23 13:36:45 +01:00
..
about Bump go modules (#16051) 2024-04-25 14:30:00 +00:00
aliases Support for integers on the wire and state protocol 2024-08-23 13:36:45 +01:00
backend/diy Bump the go_modules group across 24 directories with 1 update (#15685) 2024-03-14 07:52:34 +00:00
cloud_secrets_provider Enable full strict mode. (#3218) 2019-09-11 16:21:35 -07:00
component_provider_schema Add RunPlugin support for python 2023-03-06 21:35:39 +00:00
config_basic Bump go modules (#16051) 2024-04-25 14:30:00 +00:00
config_capture_e2e/nodejs Revert package.json lookup fix. 2023-05-15 14:14:57 -04:00
config_missing Bump go modules (#16051) 2024-04-25 14:30:00 +00:00
config_secrets_warn Bump go modules (#16051) 2024-04-25 14:30:00 +00:00
construct_component Support for integers on the wire and state protocol 2024-08-23 13:36:45 +01:00
construct_component_configure_provider Changelog and go.mod updates for v3.129.0 (#16947) 2024-08-12 19:28:33 +00:00
construct_component_error_apply Update @types/node version in tests 2023-02-07 14:20:27 +00:00
construct_component_id_output [python/sdk] Allow remote components to use output property called id (#15115) 2024-01-18 13:54:09 +00:00
construct_component_methods Bump go modules (#16051) 2024-04-25 14:30:00 +00:00
construct_component_methods_errors Bump go modules (#16051) 2024-04-25 14:30:00 +00:00
construct_component_methods_provider Bump the go_modules group across 5 directories with 1 update (#16054) 2024-04-25 21:11:41 +00:00
construct_component_methods_resources Bump go modules (#16051) 2024-04-25 14:30:00 +00:00
construct_component_methods_unknown Bump go modules (#16051) 2024-04-25 14:30:00 +00:00
construct_component_output_values Bump go modules (#16051) 2024-04-25 14:30:00 +00:00
construct_component_plain Support for integers on the wire and state protocol 2024-08-23 13:36:45 +01:00
construct_component_provider Bump go modules (#16051) 2024-04-25 14:30:00 +00:00
construct_component_provider_explicit Support for integers on the wire and state protocol 2024-08-23 13:36:45 +01:00
construct_component_provider_propagation Query language runtime for options during “pulumi new” (#16346) 2024-06-17 17:10:55 +00:00
construct_component_resource_options Support for integers on the wire and state protocol 2024-08-23 13:36:45 +01:00
construct_component_slow Update @types/node version in tests 2023-02-07 14:20:27 +00:00
construct_component_unknown Support for integers on the wire and state protocol 2024-08-23 13:36:45 +01:00
construct_nested_component/go Query language runtime for options during “pulumi new” (#16346) 2024-06-17 17:10:55 +00:00
custom_timeouts Rename "Smoke" test to "Acceptance" tests 2023-01-30 15:38:37 -05:00
delete_before_create Fix remaining lint issues (#14688) 2023-12-02 17:16:09 +00:00
deleted_with Bump the go_modules group across 5 directories with 1 update (#16054) 2024-04-25 21:11:41 +00:00
dependency_steps Remove unused `package.json` files from tests (#13162) 2024-07-08 14:09:16 +00:00
double_pending_delete Fix remaining lint issues (#14688) 2023-12-02 17:16:09 +00:00
duplicate_urns Remove unused `package.json` files from tests (#13162) 2024-07-08 14:09:16 +00:00
dynamic Allow Python dynamic providers to capture secrets (#15864) 2024-08-02 23:51:52 +00:00
ee_perf Use prefered `new pulumi.Config()` form 2019-01-31 16:11:57 -08:00
empty Bump the go_modules group across 24 directories with 1 update (#15685) 2024-03-14 07:52:34 +00:00
enums [tests/integration] Remove `pulumi` from `requirements.txt` (#15226) 2024-01-24 14:16:40 +00:00
environments_basic [environments] Add integration tests (#14144) 2023-10-12 16:39:26 +00:00
environments_merge [environments] Add integration tests (#14144) 2023-10-12 16:39:26 +00:00
exclude_protected Implement the --exclude-protected feature (#8359) 2021-11-15 11:45:14 -08:00
explicit_provider Remove unused `package.json` files from tests (#13162) 2024-07-08 14:09:16 +00:00
gather_plugin Bump the go_modules group across 24 directories with 1 update (#15685) 2024-03-14 07:52:34 +00:00
get_created Remove unused `package.json` files from tests (#13162) 2024-07-08 14:09:16 +00:00
get_resource Bump the go_modules group across 24 directories with 1 update (#15685) 2024-03-14 07:52:34 +00:00
go Use provided ImportBasePath for parameterized SDKs (#17036) 2024-08-21 12:02:32 +00:00
invalid_package_json Revert package.json lookup fix. 2023-05-15 14:14:57 -04:00
large_resource Bump the go_modules group across 24 directories with 1 update (#15685) 2024-03-14 07:52:34 +00:00
nodejs Fix NodeJS OOM detection condition (#17045) 2024-08-22 15:06:16 +00:00
partial_state Fix remaining lint issues (#14688) 2023-12-02 17:16:09 +00:00
partial_values Propagate inputs to outputs during preview. (#3327) 2019-11-11 12:09:34 -08:00
policy Run Environment.DeleteIfNotFailed after tests complete (#16730) 2024-07-23 10:37:01 +00:00
printf Bump the go_modules group across 24 directories with 1 update (#15685) 2024-03-14 07:52:34 +00:00
project_main Bump the go_modules group across 24 directories with 1 update (#15685) 2024-03-14 07:52:34 +00:00
project_main_abs Enable absolute and relative parent paths for pulumi main (#6734) 2021-04-08 21:39:52 -07:00
project_main_parent/foo Enable absolute and relative parent paths for pulumi main (#6734) 2021-04-08 21:39:52 -07:00
protect_resources Fix remaining lint issues (#14688) 2023-12-02 17:16:09 +00:00
provider_secret_config Enable full strict mode. (#3218) 2019-09-11 16:21:35 -07:00
python Add parameterization support for call & read in python (#16915) 2024-08-09 10:43:41 +00:00
python_await Cleanup output futures list as they complete (#16057) 2024-04-26 16:35:28 +00:00
query Remove unused `package.json` files from tests (#13162) 2024-07-08 14:09:16 +00:00
read Remove unused `package.json` files from tests (#13162) 2024-07-08 14:09:16 +00:00
recreate_resource_check Fix remaining lint issues (#14688) 2023-12-02 17:16:09 +00:00
refresh/go Bump the go_modules group across 24 directories with 1 update (#15685) 2024-03-14 07:52:34 +00:00
resource_refs_get_resource re-enable TestResourceRefsGetResourceNode (#16903) 2024-08-07 15:50:18 +00:00
rotate_passphrase Bump the go_modules group across 5 directories with 1 update (#16054) 2024-04-25 21:11:41 +00:00
secret_outputs [sdk/python] Fix secret regression (#5496) 2020-10-01 14:57:51 -07:00
single_resource Suppress JSON outputs in preview correctly (#2771) 2019-05-25 12:10:38 +02:00
stack_bad_parenting Consistent dependencies (#2517) 2019-03-05 20:34:51 -08:00
stack_dependencies Remove existing lock files 2018-11-12 15:33:58 -08:00
stack_outputs Remove dotnet 2022-12-13 16:13:53 +00:00
stack_outputs_program_error Fix: Don't delete stack outputs on failed deployments (#15754) 2024-03-25 22:37:46 +00:00
stack_outputs_resource_error Fix: Don't delete stack outputs on failed deployments (#15754) 2024-03-25 22:37:46 +00:00
stack_parenting Consistent dependencies (#2517) 2019-03-05 20:34:51 -08:00
stack_project_name Actually fix the naming test (#10554) 2022-08-31 20:52:23 +01:00
state_rename_parent Bump the go_modules group across 5 directories with 1 update (#16054) 2024-04-25 21:11:41 +00:00
steps Fix remaining lint issues (#14688) 2023-12-02 17:16:09 +00:00
targets Run Environment.DeleteIfNotFailed after tests complete (#16730) 2024-07-23 10:37:01 +00:00
transformations Remove unused `package.json` files from tests (#13162) 2024-07-08 14:09:16 +00:00
transforms sdk/python: add support for stack invoke transforms (#16701) 2024-07-19 08:01:23 +00:00
tsconfig Add tsconfig option to specify tsconfig path (#8452) 2021-11-22 11:42:39 -08:00
types Fix remaining lint issues (#14688) 2023-12-02 17:16:09 +00:00
unsafe_snapshot_tests/bad_resource Update tests/integration/unsafe_snapshot_tests/bad_resource/resource.ts 2022-09-15 08:00:36 -07:00
valid-property-names [testing] Add integration tests for regressions in property name parsing (#14681) 2023-12-01 17:27:33 +00:00
.gitignore ci: Enable async component builds 2022-09-14 10:06:05 -07:00
appdash_test.go Reimport appdash from our mirror (#14701) 2023-11-30 14:21:35 +00:00
component_setup.sh Engine and Golang support for shimless providers 2022-11-14 11:25:41 +00:00
integration_acceptance_test.go Run Environment.DeleteIfNotFailed after tests complete (#16730) 2024-07-23 10:37:01 +00:00
integration_go_acceptance_test.go test: Update deps (#16010) 2024-04-24 05:07:52 +00:00
integration_go_test.go Use provided ImportBasePath for parameterized SDKs (#17036) 2024-08-21 12:02:32 +00:00
integration_nodejs_acceptance_test.go Run Environment.DeleteIfNotFailed after tests complete (#16730) 2024-07-23 10:37:01 +00:00
integration_nodejs_test.go Add NodeJS test for parameterized providers #2 (#16901) 2024-08-09 08:34:29 +00:00
integration_python_acceptance_test.go Run Environment.DeleteIfNotFailed after tests complete (#16730) 2024-07-23 10:37:01 +00:00
integration_python_test.go Add parameterization support for call & read in python (#16915) 2024-08-09 10:43:41 +00:00
integration_test.go Install missing python versions using pyenv during installation (#16855) 2024-08-19 15:55:54 +00:00
integration_util_test.go Replace some more uses of assert.Contains(err.Error()) with assert.ErrorContains (#14863) 2023-12-15 17:45:32 +00:00