diff --git a/docs/3-create-a-zarf-package/4-zarf-schema.md b/docs/3-create-a-zarf-package/4-zarf-schema.md
index d0f9027df6..31264a4589 100644
--- a/docs/3-create-a-zarf-package/4-zarf-schema.md
+++ b/docs/3-create-a-zarf-package/4-zarf-schema.md
@@ -2202,6 +2202,28 @@ Must be one of:
+
+
+ type
+
+
+
+
+**Description:** Changes the handling of a variable to load contents differently (i.e. from a file rather than as a raw variable - templated files should be kept below 1 MiB)
+
+| | |
+| -------- | ------------------ |
+| **Type** | `enum (of string)` |
+
+:::note
+Must be one of:
+* "raw"
+* "file"
+:::
+
+
+
+
@@ -2811,6 +2833,28 @@ Must be one of:
+
+
+ type
+
+
+
+
+**Description:** Changes the handling of a variable to load contents differently (i.e. from a file rather than as a raw variable - templated files should be kept below 1 MiB)
+
+| | |
+| -------- | ------------------ |
+| **Type** | `enum (of string)` |
+
+:::note
+Must be one of:
+* "raw"
+* "file"
+:::
+
+
+
+
diff --git a/examples/variables/README.md b/examples/variables/README.md
index 993f4a31fd..03b16a9ea0 100644
--- a/examples/variables/README.md
+++ b/examples/variables/README.md
@@ -1,3 +1,4 @@
+import Properties from '@site/src/components/SchemaItemProperties';
import ExampleYAML from "@site/src/components/ExampleYAML";
# Variables
@@ -23,7 +24,7 @@ To use variables and constants at deploy time you need to have two things:
1. a manifest that you want to template a value in
2. a defined variable in the `zarf.yaml` file from `variables` or `setVariable`
-The manifest should have your desired variable name in ALL CAPS prefixed with `###ZARF_VAR` for `variables` or prefixed with `###ZARF_CONST` for `constants` and suffixed with `###`. For example in a configmap that took a variable named `DATABASE_USERNAME` you would provide the following:
+The manifest should have your desired variable name in ALL CAPS prefixed with `###ZARF_VAR` for `variables` or prefixed with `###ZARF_CONST` for `constants` and suffixed with `###`. For example in a configmap that took a variable named `DATABASE_USERNAME` you would provide the following:
```yaml
apiVersion: v1
@@ -34,7 +35,7 @@ data:
username: ###ZARF_VAR_DATABASE_USERNAME###
```
-In the `zarf.yaml`, you would need to define the variable in the `variables` section or as output from an action with `setVariable` with the same `name` as above. Or for a constant you would use the `constants` section. For the same example as above, I would have the following for a variable defined by the deploy user:
+In the `zarf.yaml`, you would need to define the variable in the `variables` section or as output from an action with `setVariable` with the same `name` as above. Or for a constant you would use the `constants` section. For the same example as above, you would have the following for a variable defined by the deploy user:
```yaml
variables:
@@ -55,6 +56,20 @@ components:
- name: DATABASE_USERNAME
```
+Zarf `variables` can also have additional fields that describe how Zarf will handle them which are described below:
+
+
+
+:::note
+
+The fields `default`, `description` and `prompt` are not available on `setVariables` since they always take the standard output of an action command and will not be interacted with directly by a deploy user.
+
+:::
+
+Zarf `constants` are similar but have fewer options as they are static by the time `zarf package deploy` is run:
+
+
+
:::note
All names must match the regex pattern `^[A-Z0-9_]+$` [Test](https://regex101.com/r/BG5ZqW/1)).
@@ -63,7 +78,7 @@ All names must match the regex pattern `^[A-Z0-9_]+$` [Test](https://regex101.co
:::tip
-When not specifying `default`, `prompt`, `sensitive`, or `indent` Zarf will default to `default: ""`, `prompt: false`, `sensitive: false` and `indent: 0`
+When not specifying `default`, `prompt`, `sensitive`, `autoIndent`, or `type` Zarf will default to `default: ""`, `prompt: false`, `sensitive: false`, `autoIndent: false`, and `type: "raw"`
:::
diff --git a/examples/variables/nginx-configmap.yaml b/examples/variables/nginx-configmap.yaml
index f0c1807859..7888c64d46 100644
--- a/examples/variables/nginx-configmap.yaml
+++ b/examples/variables/nginx-configmap.yaml
@@ -24,6 +24,7 @@ data:
###ZARF_VAR_MODIFIED_TERRAFORM###
+ File SHASUM: ###ZARF_VAR_MODIFIED_TERRAFORM_SHASUM###
###ZARF_VAR_OPTIONAL_FOOTER###