Download the PHP
package vortos/vortos-iac without Composer
On this page you can find all versions of the php package
vortos/vortos-iac. It is possible to download/install
these versions without Composer. Possible dependencies are resolved
automatically.
Vendor vortos Package vortos-iac Short Description Vortos IaC — Terraform/OpenTofu lifecycle (plan/apply/destroy), codegen (.tf.json), nine resource families, state backends, policy gate, audit trail. License
MIT
FAQ
After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.
Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.
In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories.
In this case some credentials are needed to access such packages.
Please use the auth.json textarea to insert credentials, if a package is coming from a private repository.
You can look here for more information.
Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
To use Composer is sometimes complicated. Especially for beginners.
Composer needs much resources. Sometimes they are not available on a simple webspace.
If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Generates Terraform (.tf.json) files from resource declarations the framework
already compiles — Kafka transports from MessagingConfig, the object-store
bucket from vortos-object-store. Pure codegen: no cloud credentials, no
network calls, no infrastructure mutation. Terraform stays the provisioning
engine; Vortos config becomes the source of intent.
Quick start
This scaffolds src/Shared/Infrastructure/Iac/AppInfraConfig.php:
Register it in your DI config (like any MessagingConfig), then:
Resource shape (partitions, retention, replication) stays in each module's
MessagingConfig — partitions(), replicationFactor(), topicConfig() are
the provisioning intent. InfraConfig is app-level (one per project, a
deployment concern), choosing only providers and output paths.
Providers
Resource
Provider enum
Terraform resource
Kafka topic
KafkaProvider::Confluent
confluent_kafka_topic (confluentinc/confluent)
Kafka topic
KafkaProvider::Kafka
kafka_topic (Mongey/kafka — self-hosted & MSK)
Bucket
ObjectStoreProvider::Aws
aws_s3_bucket (hashicorp/aws)
Bucket
ObjectStoreProvider::CloudflareR2
cloudflare_r2_bucket (cloudflare/cloudflare)
Security model
Secrets cannot reach generated files.Env references become typed
Terraform variable blocks (sensitive = true when the name looks secret);
values come from terraform.tfvars/CI at apply time. Literal values on
secret-looking attributes fail the export (->allowLiteral('path') is the
explicit, greppable opt-out). SASL/SSL/DSN settings are never exported —
they are client auth, not topic infrastructure.
No injection surface. Output is Terraform JSON, never templated HCL.
${...} expressions are emitted only by validated variable/reference
classes; ${/%{ in user data is escaped per spec.
Filesystem jail. Output paths are relative, .tf.json-suffixed,
traversal- and symlink-checked against the project dir, written atomically.
Files lacking the generated-file header are never overwritten; there is no
--force.
Compile-time failure. Duplicate names/paths, unknown providers, bad
globs, unresolvable placeholders fail the container build, not the export.
CI recipe
Run terraform validate / plan against the generated files in your infra
pipeline as usual.
Adding a new resource family (maintainers)
Four files, mirroring Exporter/Kafka/:
Definition — extend AbstractExporterDefinition; compileSpec() reads
compiled container parameters and returns a static spec (use
PlaceholderTranslator::translate() for any value that may hold an
%env(...)% placeholder; throw \LogicException for misconfiguration).
Exporter — implement ExporterInterface; map the spec onto a
TerraformDocument (SpecValue::decode() turns spec values into
variables/references). Pure transform: no I/O.
Provider mapper(s) — one per Terraform provider if the family supports
several (see KafkaTopicMapperInterface).
Golden-file tests — compile a fixture container, export, byte-compare
rendered output (see KafkaTopicsExportTest).
Register the exporter service in IacExtension and add it to the
ExportRunner exporter map.
Composer command for our command line client (download client)This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free.Standard composer command
The package vortos/vortos-iac contains the following files
Loading the files please wait ...
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.