Commit graph

92 commits

Author SHA1 Message Date
Hadi Cherkaoui
dbaed4e2e9
Update dependency-upgrades.md 2025-01-21 20:00:08 +01:00
Hadi Cherkaoui
3fa7344017
Small docu typo fixes in debugging.md
fixed a typo and changed all lower case delve to Delve since thats how delve them selfs write it
2025-01-18 14:04:04 +01:00
Daniel Schmidt
e29708c4d9
ephemeral: add WriteOnlyAttributesAllowed client capability to validate resource 2024-12-18 09:30:32 +01:00
Daniel Schmidt
3a962e8e7e
ephemeral: add WriteOnlyAttributesAllowed client capability
we allow it for all requests
2024-12-12 10:56:40 +01:00
Sarah French
f031b14ece
Update architecture.md docs (#36167)
* Update references to structs and interfaces used for Backends

* Replace links to old www.terraform.io/docs website

These all had active redirects to the new site, except for https://www.terraform.io/docs/backends/index.html, which 404'd

* Make bullets' formatting consistent

* Update link to non-existent Execute type in docs
2024-12-10 10:39:24 +00:00
Sarah French
0d6c1d315d
Fix hyperlink in docs/architecture.md (#36166) 2024-12-05 20:22:44 +00:00
Radek Simko
f57c3c768a
docs: Add notes about debugging (#35714) 2024-11-13 09:33:37 +00:00
Daniel Schmidt
50b3732f72
write-only attributes: add to provider schema 2024-11-12 16:42:05 +01:00
James Bardin
3a1a9408d9 fix Descendants spelling
this has proliferated everywhere
2024-10-09 11:09:02 -04:00
James Bardin
5a7a113863 remove state from proto6 ephemeral calls 2024-10-01 10:26:32 -04:00
James Bardin
9899d59a22 add deferrals to ephemeral proto and remove state
Add deferrals to the protocol.
The renew and close calls had an extra state field which was unneeded.
2024-09-30 10:49:52 -04:00
James Bardin
9c3dc8f73a ephemeral protocol rename
Add `Resource` to all the ephemeral protocol symbols to make them
consistent with existing naming conventions.
2024-09-20 11:08:53 -04:00
James Bardin
5ecd6d0854 new proto files for ephemeral resources 2024-09-19 10:02:45 -04:00
kmoe
3946b8c0df
Update Go doc links in architecture.md (#35629)
* docs: update godoc links

The pkg.go.dev links are no longer usable, so use local godoc instead.

* docs: add pkgsite instructions
2024-08-22 18:18:56 +01:00
Jack Whitter-Jones
ad8691745a
Update architecture.md
Updated a broken link due to spelling mistake
2024-05-18 11:00:09 +01:00
Liam Cervante
055dd27e53
deferred actions: implement latest provider protocol changes (#35063) 2024-04-24 14:10:08 +02:00
Rose
1b5966dd50 Small TFC fixes in md files 2024-04-19 06:58:43 -07:00
Daniel Schmidt
561e74b190
Merge pull request #34880 from hashicorp/TF-13954
stacks: add deferred to protobuf
2024-04-02 14:05:00 +02:00
Martin Atkins
f0ec576fea docs: Dependency upgrading
This new document is a mixture of context that was previously just
institutional knowledge held by me and a few other Terraform Core members,
and of new information I've learned while practicing dependency upgrades
under our new multi-module repository layout.

I've documented this as a starting point for those who are completely new
to the codebase, and for those who were already familiar but haven't yet
performed upgrades in the new multi-module layout.

This all still remains slightly in flux because I'm using real dependency
upgrades to practice different interactions between the different modules,
and so this is likely to evolve as we learn more, but we need to have at
least some initial docs on this around in case we need to perform upgrades
in an emergency situation where I am not around to assist directly.
2024-04-01 08:16:45 -07:00
Daniel Schmidt
45e9530d12
stacks: remove deferred actions for UpgradeResourceState
UpgradeResourceState is offline; it does not need a configured provider

therefore it can not be deferred
2024-03-26 17:34:24 +01:00
Daniel Schmidt
71873ec29a
fix comment 2024-03-26 17:32:46 +01:00
Daniel Schmidt
e650c039ef
stacks: add deferred to protobuf 2024-03-25 16:12:41 +01:00
Daniel Schmidt
4e8a8fa883
add new tfplugin version
in preparation for adding fields related to deferred actions
2024-03-25 16:10:27 +01:00
James Bardin
300f66b71d
Merge pull request #34603 from hashicorp/jbardin/remove-provider-funtion-warnings
provider functions can only return an error
2024-02-27 09:53:48 -05:00
Radek Simko
0c509183d1
ci: Add test for license headers (#34624)
* ci: Add test for copyright headers

* replace GHA workflow with make target (copyright)

This makes it reusable for outside of CI, such that anyone cloning the repo locally can still easily verify compliance before raising a PR.

* remove go:generate for copywrite

This should no longer be needed as we leverage copywrite via a shell script now.

* introduce make copyrightfix
2024-02-14 07:53:39 +00:00
James Bardin
a8701f6ddd provider functions return an error
The call site for language functions doesn't currently have a way to
handle complex diagnostics, so rather than appear to support them in the
protocol we remove the concepts of diagnostics for now. We do however
retain the argument index fields, which we can wrap in a
function.ArgError and get a little more precise hcl diagnostic from
expression.
2024-02-01 09:26:51 -05:00
Brian Flad
c7a44bfc9a
Support Private State with MoveResourceState (#34575)
This change ensures that providers receive the source private state and can store potentially differing private state as part of a move, rather than always copying the source private state to the target. This functionality has not yet been released and therefore there are no compatibility concerns.
2024-01-26 07:46:31 -05:00
Brian Flad
7958dc1e77
docs: Explicitly mention states should not contain unknown values (#34491)
Reference: https://github.com/hashicorp/terraform-plugin-testing/issues/262

This is a quick documentation update to the Resource Instance Change Lifecycle page to explicitly call out that unknown values are never permitted in any resource instance state.
2024-01-25 09:17:29 -05:00
Liam Cervante
7d143388f3
Add support for the cross resource type move operation in the proto schema (#34480)
* Update proto schema and provider interfaces with support for moved across resource type RPCs

* address comments

* remove unused functions

* remove support for flatmap format
2024-01-11 10:08:50 +01:00
hc-github-team-es-release-engineering
6114ec4390
Merge pull request #34367 from hashicorp/RELPLAT-955-EOY-license-updates
[DO NOT MERGE UNTIL EOY] EOY license updates
2024-01-02 09:20:56 -08:00
James Bardin
c439b72599 proto: add provider-defined functions 2023-12-08 15:25:26 -05:00
hc-github-team-es-release-engineering
a90ba0bfe4 update year in license files 2023-12-06 11:58:53 -08:00
Martin Atkins
b64953dba3 stacks: Summary docs giving an overview and some details about stackeval 2023-11-28 12:07:49 -08:00
Martin Atkins
4b763be987 rpcapi: A README summarizing the role and behavior of this package 2023-11-28 12:07:49 -08:00
Martin Atkins
d46f0ed015 promising: A readme giving an overview of how this package works 2023-11-28 12:07:49 -08:00
CJ Horton
813369f317 stick with go generate check instead 2023-08-30 14:25:49 -07:00
Brian Flad
7094517089
Add GetMetadata RPC to provider protocol (#33739)
Reference: https://github.com/hashicorp/terraform/pull/33486

This is a followup to the new provider server capability to make the `GetProviderSchema` RPC optional. While this server capability would perform its intended function when directly talking to a single provider server SDK implementation, provider servers using terraform-plugin-mux need a methodology for the mux server to determine the available resource types of each underlying provider server to properly route resource-specific RPCs. Since the only methodology available to the mux server would be calling the `GetProviderSchema` RPC to each of underlying provider servers, any memory optimization of core caching would be lost.

The choice of adding a new RPC instead of adjusting the existing `GetProviderSchema` RPC with additional request information, such as "only list the type names and not the schema information in the response", is two-fold:

- Prevents the introduction of conditional logic for the existing RPC.
- Clearly delineates the purpose of the RPC and can be documented easier.

The choice of adding this to the existing provider service is two-fold:

- Implementing a separate protocol and/or service only on the provider side of the protocol would be a novel design change. This small of a change does not warrant the potential research and testing effort that would be associated with that implementation.
- While the core implementation will not use the new RPC immediately, there is no reason why it should be restricted from doing so in the future if a valid use case surfaces. Other ecosystem tools, beyond terraform-plugin-mux, can also potentially benefit from the lightweight RPC now.

This is changing the 5.4 and 6.4 protocol versions following the guidance of this comment in the definition files, since it directly relates to the prior intention of the new minor versions:

```protobuf
// Note that only the proto files included in a release tag of Terraform are
// official protocol releases. Proto files taken from other commits may include
// incomplete changes or features that did not make it into a final release.
// In all reasonable cases, plugin developers should take the proto file from
// the tag of the most recent release of Terraform, and not from the main
// branch or any other development branch.
```

As with any Protocol Buffers definition update, protocol compatibility is guaranteed within a major version, however generated protocol source code compatibility is not guaranteed. In this case, implementing the new RPC method in protocol wrapper types and the moving of the `ServerCapabilities` message to the top namespace are considered acceptable changes.
2023-08-24 14:35:42 -04:00
CJ Horton
c09daa7dc7 update license for provider plugin protocol files 2023-08-16 11:21:41 -07:00
hashicorp-copywrite[bot]
53c34ff49c
Update copyright file headers to BUSL-1.1 2023-08-10 23:43:27 +01:00
James Bardin
fb35d7fd89 add get_provider_schema_optional server capability 2023-07-10 10:59:15 -04:00
Martin Atkins
e0ef2748e6 docs: Describe the plugin protocol encoding of refined unknown values
This is actually a description of the "cty" library's encoding of refined
values, but from the perspective of the plugin protocol it's an
implementation detail that Terraform Core outsources that to a third-party
library, and current server-side implementations of the protocol use an
independent implementation of this format which will need to be compatible
with what cty does.
2023-05-24 13:48:16 -07:00
Craig Wright
ddd87994bf
Update README.md
Fixing broken relative link path.
2023-05-02 16:23:40 -07:00
hashicorp-copywrite[bot]
325d18262e [COMPLIANCE] Add Copyright and License Headers 2023-05-02 15:33:06 +00:00
Bilal
3901478212
Update README.md
added the right correction
2023-04-26 23:09:18 +02:00
Bilal
1ffe971a90
Update README.md
fix dead-link and change naming to have right understanding. (Add Peramlink instead of copy path)
2023-04-26 17:11:55 +02:00
kmoe
6fff41b6de
Delete maintainer-etiquette.md (#32741) 2023-02-24 16:31:58 +00:00
Brian Flad
0b8c65fa4e
docs: Explicitly mention Computed-only attribute behavior for Proposed New State
Reference: 21bb677db7/internal/plans/objchange/objchange.go (L289-L292)

Previously, the resource lifecycle documentation for Proposed New State only mentioned special behavior for Optional and Computed attributes. This minor documentation update mentions that Terraform also imposes special behavior on Computed-only attributes (preserving any Prior State value).
2023-01-10 14:50:02 -05:00
Martin Atkins
e293992d45 docs: "How Terraform Uses Unicode" should mention HCL too
I missed this on my first attempt to write this document. Consequently
we're currently depending on a version of HCL which uses Unicode 9, and
that's significantly lagging behind everything else which is currently on
Unicode 13.

My goal of adding these docs then is to remind us to update HCL to Unicode
15 once we're updating everything else to Unicode 15 with the Go 1.20
release, assuming that the Go team completes that Unicode upgrade as
currently planned.
2022-11-16 15:38:45 -08:00
Brian Flad
8c93420270
docs/plugin-protocol: Add notes about missing configuration in ReadResource and UpgradeResourceState request messages (#31998)
This opts to inline document these intentional design decisions in the protocol definition as a catch-all for it not being documented elsewhere.

Protocol Buffers files updated via:

```shell
make protobuf
```
2022-10-13 16:29:34 -04:00
Craig Wright
9854783d34
Merge pull request #31648 from nnzv/patch-3
typo: use destructions singular form
2022-08-16 15:17:38 -07:00