@@ -13,11 +13,12 @@ AWS AppStream provides a CLI, but it only handles high-level image operations li
13134 . System/user session scripts
14145 . File provisioning
15156 . Declarative image metadata
16+ 7 . S3 Backend Support
1617
1718# Planned Features
18191 . Registry Configs
19202 . Scaffolded startup Apps - Customise your app startup
20- 3 . S3 and Git backend support
21+ 3 . Git backend support
21224 . State persistence within image builders
2223
2324# Installation
@@ -33,11 +34,76 @@ iex (iwr https://raw.githubusercontent.com/aslamcodes/appstreamfile/main/win_ins
3334*** Supported in future releases***
3435
3536# Usage
36- Use ** local** backend source when the config file is within image builders. S3, Git Support is WIP
37+ Appstreamfile supports fetching configuration from local filesystem or S3.
38+
39+ ### Local Source
40+ Use ** local** backend source when the config file is within the image builder.
3741``` sh
3842 appstreamfile -source local -location config.yaml
3943```
4044
45+ ### S3 Source
46+ Use ** s3** backend source to fetch config from an S3 bucket.
47+ * Note: Requires an AWS profile named ` appstream_machine_role ` to be configured.*
48+ ``` sh
49+ appstreamfile -source s3 -bucket my-bucket -key path/to/config.yaml
50+ ```
51+
52+ ### Flags
53+ | Flag | Description | Required For |
54+ | ------| -------------| --------------|
55+ | ` -source ` | Configuration source (` local ` or ` s3 ` ) | All |
56+ | ` -location ` | Path to local config file | ` local ` source |
57+ | ` -bucket ` | S3 bucket name | ` s3 ` source |
58+ | ` -key ` | S3 object key | ` s3 ` source |
59+ | ` -version-id ` | S3 object version ID (optional) | ` s3 ` source |
60+
61+ # Configuration Reference
62+
63+ The configuration file is a YAML file with the following sections:
64+
65+ ### ` platform `
66+ Operating system platform (e.g., ` windows ` ).
67+
68+ ### ` installers `
69+ List of installation scripts to run.
70+ - ` executable ` : The shell/executable to run the script (e.g., ` powershell ` ).
71+ - ` installScript ` : The actual script content.
72+
73+ ### ` catalog `
74+ List of applications to add to the AppStream catalog.
75+ - ` name ` : Internal name of the application.
76+ - ` path ` : Absolute path to the executable.
77+ - ` display_name ` : Name shown to users.
78+ - ` parameters ` : Launch parameters.
79+ - ` icon_path ` : Path to the icon file.
80+ - ` working_dir ` : Working directory for the application.
81+
82+ ### ` files `
83+ List of files to create on the system.
84+ - ` path ` : Destination path.
85+ - ` content ` : Content of the file.
86+
87+ ### ` session_scripts `
88+ Configuration for session scripts (start and termination).
89+ Contains ` session_start ` and ` session_termination ` blocks, each with:
90+ - ` waitingTime ` : Max time to wait for scripts to complete (in seconds).
91+ - ` executables ` : List of scripts to run.
92+ - ` context ` : ` system ` or ` user ` .
93+ - ` filename ` : Path to the script.
94+ - ` arguments ` : Arguments to pass.
95+ - ` s3LogEnabled ` : Boolean to enable logging to S3.
96+
97+ ### ` image `
98+ Metadata for the resulting AppStream image.
99+ - ` name ` : Image name.
100+ - ` display_name ` : Display name.
101+ - ` description ` : Description.
102+ - ` enable_dynamic_app_catalog ` : Boolean.
103+ - ` use_latest_agent_version ` : Boolean.
104+ - ` tags ` : List of tags (` key:value ` ).
105+ - ` dry_run ` : If true, simulates operations without making changes.
106+
41107# Sample config
42108``` yaml
43109platform : " windows"
0 commit comments