https://github.com/workloads/web-assets-sync
Terraform-managed Public Assets Sync
https://github.com/workloads/web-assets-sync
aws terraform
Last synced: 12 months ago
JSON representation
Terraform-managed Public Assets Sync
- Host: GitHub
- URL: https://github.com/workloads/web-assets-sync
- Owner: workloads
- Created: 2023-09-10T17:10:57.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-29T10:27:57.000Z (over 1 year ago)
- Last Synced: 2025-01-21T06:11:43.534Z (about 1 year ago)
- Topics: aws, terraform
- Language: HCL
- Homepage: https://assets.workloads.io
- Size: 84 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# HCP Terraform Workspace `web-assets-sync`
> This repository manages uploads of web-accessible Assets for [@workloads](https://github.com/workloads).
## Table of Contents
* [HCP Terraform Workspace `web-assets-sync`](#hcp-terraform-workspace-web-assets-sync)
* [Table of Contents](#table-of-contents)
* [Requirements](#requirements)
* [Usage](#usage)
* [Inputs](#inputs)
* [Outputs](#outputs)
* [Notes](#notes)
* [Sensitive Data](#sensitive-data)
* [Contributors](#contributors)
* [License](#license)
## Requirements
- HashiCorp Terraform `1.9.x` or [newer](https://developer.hashicorp.com/terraform/downloads)
- file-system access to public asset exports in `../assets/export`
- file-system access to public Minecraft mods `../minecraft-mods`
- file-system access to public Minecraft Worlds `../minecraft-worlds`
Optional, and only needed for documentation generation:
- `terraform-docs` `0.18.0` or [newer](https://terraform-docs.io/user-guide/installation/)
## Usage
This repository uses a standard Terraform workflow (`init`, `plan`, `apply`).
For more information, including detailed usage guidelines, see the [Terraform documentation](https://developer.hashicorp.com/terraform/cli/commands).
### Inputs
| Name | Description | Type | Required |
|------|-------------|------|:--------:|
| asset_paths | Sync-eligible Path Objects. |
object({
assets = object({
extensions = string
local_path = string
remote_path = optional(string)
}),
minecraft_mods = object({
extensions = string
local_path = string
remote_path = optional(string)
})
minecraft_worlds = object({
extensions = string
local_path = string
remote_path = optional(string)
})
}) | no |
| file_extension_regex | Regular Expression to match File Extensions. | `string` | no |
| modstxt_file_name | Name of the per-modset `mods.txt` file. | `string` | no |
| s3_storage_class | Storage Class of S3 Object. | `string` | no |
| tfe_organization | HCP Terraform Organization. | `string` | no |
| tfe_workspace_assets | HCP Terraform Workspace for `web-assets`. | `string` | no |
### Outputs
| Name | Description |
|------|-------------|
| aws_cli_commands | AWS CLI Command for CloudFront operations. |
| aws_console_url | AWS Console URL. |
| eligible_files | List of Sync-Eligible Assets. |
| minecraft_mod_urls | URLs of Minecraft Mods. |
| minecraft_modstxt_urls | URL of Minecraft `mods.txt` Files. |
| minecraft_world_urls | URLs of Minecraft Worlds. |
## Notes
### Sensitive Data
Terraform state may contain [sensitive data](https://developer.hashicorp.com/terraform/language/state/sensitive-data). This workspace uses [HCP Terraform](https://developer.hashicorp.com/terraform/cloud-docs) to safely store state, and encrypt the data at rest.
## Contributors
For a list of current (and past) contributors to this repository, see [GitHub](https://github.com/workloads/web-assets-sync/graphs/contributors).
## License
Licensed under the Apache License, Version 2.0 (the "License").
You may download a copy of the License at [apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0).
See the License for the specific language governing permissions and limitations under the License.