MCPcopy
hub / github.com/opentofu/opentofu

github.com/opentofu/opentofu @v1.12.3 sqlite

repository ↗ · DeepWiki ↗ · release v1.12.3 ↗
17,413 symbols 97,968 edges 1,871 files 5,981 documented · 34%
README

OpenSSF Best Practices

Homepage | Slack | Get Started

OpenTofu is an OSS tool for building, changing, and versioning infrastructure safely and efficiently. OpenTofu can manage existing and popular service providers as well as custom in-house solutions.

Getting help and contributing

[!TIP] For more OpenTofu events, subscribe to the OpenTofu Events Calendar!

Key features

  • Infrastructure as Code: Infrastructure is described using a high-level configuration syntax. This allows a blueprint of your datacenter to be versioned and treated as you would any other code. Additionally, infrastructure can be shared and re-used.

  • Execution Plans: OpenTofu has a "planning" step where it generates an execution plan. The execution plan shows what OpenTofu will do when you call apply. This lets you avoid any surprises when OpenTofu manipulates infrastructure.

  • Resource Graph: OpenTofu builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. Because of this, OpenTofu builds infrastructure as efficiently as possible, and operators get insight into dependencies in their infrastructure.

  • Change Automation: Complex changesets can be applied to your infrastructure with minimal human interaction. With the previously mentioned execution plan and resource graph, you know exactly what OpenTofu will change and in what order, avoiding many possible human errors.

Nightly Builds

Nightly builds are available for testing the latest changes on main. These are experimental and not intended for production use. Each build is removed after 30 days.

Nightly builds can be found at https://nightlies.opentofu.org/nightlies. For those who want to automate with tooling, https://nightlies.opentofu.org/nightlies/latest.json will be kept up to date with the latest build information.

For more details, see RELEASE.md.

Reporting security vulnerabilities

If you've found a vulnerability or a potential vulnerability in OpenTofu please follow Security Policy. We'll send a confirmation email to acknowledge your report, and we'll send an additional email when we've identified the issue positively or negatively.

Reporting possible copyright issues

If you believe you have found any possible copyright or intellectual property issues, please contact liaison@opentofu.org. We'll send a confirmation email to acknowledge your report.

Registry Access

In an effort to comply with applicable sanctions, we block access from specific countries of origin. For more details, see the Registry Inclusion Policy.

License

Mozilla Public License v2.0

Extension points exported contracts — how you extend this code

SymbolTable (Interface)
SymbolTable is an interface implemented by types that have an associated symbol table, meaning that they contain a set o [9 …
internal/lang/exprs/symbol_table.go
Unconfigured (Interface)
Unconfigured represents a provider plugin that has not yet been configured. It has limited functionality that must not d [8 …
internal/providers/provider.go
Equal (Interface)
Equal is an interface that checks for deep equality between two objects. [36 implementers]
internal/legacy/helper/schema/equal.go
Output (Interface)
The Output view renders either one or all outputs, depending on whether or not the name argument is empty. [9 implementers]
internal/command/views/output.go
UnparsedVariableValue (Interface)
UnparsedVariableValue represents a variable value provided by the caller whose parsing must be deferred until configurat [10 …
internal/backend/unparsed_value.go
Interface (Interface)
Interface is the set of methods required for a resource provisioner plugin. [6 implementers]
internal/provisioners/provisioner.go
Client (Interface)
Client is the interface that must be implemented for a remote state driver. It supports dumb put/get/delete, and the hig [15 …
internal/states/remote/remote.go
UniqueKey (Interface)
UniqueKey is an interface implemented by values that serve as unique map keys for particular addresses. All implementat [19 …
internal/addrs/unique_key.go

Core symbols most depended-on inside this repo

Append
called by 2901
internal/tfdiags/diagnostics.go
HasErrors
called by 2475
internal/tfdiags/diagnostics.go
Run
called by 1556
internal/command/views/test.go
Context
called by 1342
internal/plugin/mock_proto/mock.go
NewDefaultProvider
called by 1307
internal/addrs/provider.go
String
called by 1249
internal/addrs/checkable.go
Err
called by 1224
internal/tfdiags/diagnostics.go
Printf
called by 972
internal/terminal/streams.go

Shape

Method 8,809
Function 6,248
Struct 1,770
Interface 266
TypeAlias 239
FuncType 81

Languages

Go100%
TypeScript1%

Modules by API surface

internal/tfplugin6/tfplugin6.pb.go1,205 symbols
internal/tfplugin5/tfplugin5.pb.go1,033 symbols
internal/tfplugin6/tfplugin6_grpc.pb.go226 symbols
internal/tofu/context_apply_test.go217 symbols
internal/tfplugin5/tfplugin5_grpc.pb.go204 symbols
internal/plans/internal/planproto/planfile.pb.go172 symbols
internal/cloud/tfe_client_mock.go165 symbols
internal/tofu/context_plan_test.go145 symbols
internal/legacy/tofu/state.go116 symbols
internal/command/views/init.go109 symbols
internal/plugin/mock_proto/mock.go108 symbols
internal/engine/internal/execgraph/execgraphproto/execgraph.pb.go101 symbols

Dependencies from manifests, versioned

cel.dev/exprv0.25.1 · 1×
cloud.google.com/gov0.123.0 · 1×
cloud.google.com/go/authv0.18.2 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
cloud.google.com/go/kmsv1.26.0 · 1×
cloud.google.com/go/longrunningv0.8.0 · 1×
cloud.google.com/go/monitoringv1.24.3 · 1×
cloud.google.com/go/storagev1.61.3 · 1×
github.com/AlecAivazis/survey/v2v2.3.6 · 1×
github.com/Azure/azure-sdk-for-go/sdk/azcorev1.21.0 · 1×

Datastores touched

postgresDatabase · 1 repos
tofuDatabase · 1 repos

For agents

$ claude mcp add opentofu \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact