<feed xmlns='http://www.w3.org/2005/Atom'>
<title>awwan, branch v0.8.0</title>
<subtitle>Configuration management software, scriptable shell with SSH support.</subtitle>
<id>http://git.kilabit.info/awwan/atom?h=v0.8.0</id>
<link rel='self' href='http://git.kilabit.info/awwan/atom?h=v0.8.0'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/'/>
<updated>2023-10-04T16:53:52Z</updated>
<entry>
<title>Release awwan v0.8.0 (2023-10-04)</title>
<updated>2023-10-04T16:53:52Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-10-04T16:50:54Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=006fe79d7523c47102462595d8e8664fc1910c6a'/>
<id>urn:sha1:006fe79d7523c47102462595d8e8664fc1910c6a</id>
<content type='text'>
This release add support for encryption, with two new commands "encrypt"
and "decrypt" for encrypting and decrypting file with RSA private key.

The awwan command also can read encrypted environment file with the name
".awwan.env.vault", so any secret variables can stored there and the
script that contains '{{.Val "..."}}' works as usual.

Any magic put "#put" also can copy encrypted file without any changes, as
long as the source file with ".vault" extension exist.

For environment where awwan need to be operated automatically, for example
in build system, awwan can read the private key's passphrase automatically
from the file ".ssh/awwan.pass".

=== Bug fixes

* all: do not expand environment during parseScript
* all: fix #require does not get executed on the same start
* _www: fix execute request that still use "begin_at" and "end_at"

=== Enhancements

* all: make .Vars, .Val, and .Vals panic if values is empty
* all: print any path relative to base directory
* all: move field bufout and buferr out of httpServer struct
</content>
</entry>
<entry>
<title>go.mod: update share module</title>
<updated>2023-10-04T16:24:41Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-10-04T16:24:41Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=d270e0675a3eda5629d67a79c7c252dfccd84013'/>
<id>urn:sha1:d270e0675a3eda5629d67a79c7c252dfccd84013</id>
<content type='text'>
</content>
</entry>
<entry>
<title>testdata/decrypt-wrong-privatekey: replace symlink on .awwan.env.vault</title>
<updated>2023-09-30T05:13:21Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-09-30T05:13:21Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=9080041f13103d2f7ddbad6c639397eabf79a5d7'/>
<id>urn:sha1:9080041f13103d2f7ddbad6c639397eabf79a5d7</id>
<content type='text'>
On new cloned repository, running the test will fail when using symlink,

  0 - Decrypt: DecryptOaep: crypto/rsa: decryption error
  0 + Decrypt: open testdata/decrypt-wrong-privatekey/.awwan.env.vault:
      no such file or directory
</content>
</entry>
<entry>
<title>all: add option to bypass input passphrase from terminal</title>
<updated>2023-09-29T17:15:33Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-09-29T17:15:33Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=28e475508543b2d4968bfe3432f32b3a276e38c7'/>
<id>urn:sha1:28e475508543b2d4968bfe3432f32b3a276e38c7</id>
<content type='text'>
In the environment where passphrase cannot be inputted manually, for
example, automatic integration or deployment, we need some mechanism
where awwan can be executed to copy or decrypt the encrypted file.

The option is by reading plain passphrase from file named "awwan.pass"
inside the ".ssh" directory.
If its exists and not empty, awwan will not prompt for passphrase from
terminal, instead use the content of that file as passhprase.
</content>
</entry>
<entry>
<title>all: update README related to support for encryption</title>
<updated>2023-09-29T15:49:20Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-09-25T16:55:52Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=28652864b4ba81fcb44e3e7497d4eca1672182de'/>
<id>urn:sha1:28652864b4ba81fcb44e3e7497d4eca1672182de</id>
<content type='text'>
While at it, also update the documentation index, remove finished TODO,
add and expand items in TODO to be more descriptive.
</content>
</entry>
<entry>
<title>_www: fix execute request that still use "begin_at" and "end_at"</title>
<updated>2023-09-28T11:43:02Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-09-28T11:39:21Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=cc2bb92a3ea2620fc44b41bb202239055400df5a'/>
<id>urn:sha1:cc2bb92a3ea2620fc44b41bb202239055400df5a</id>
<content type='text'>
While at it, reformat the TypeScript files using prettier v3.0.3.
</content>
</entry>
<entry>
<title>internal: replace esbuild api.Build with api.BuildContext</title>
<updated>2023-09-28T11:27:37Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-09-28T11:05:36Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=6c140758da2b49ff9eff204e27b370276cbb15e5'/>
<id>urn:sha1:6c140758da2b49ff9eff204e27b370276cbb15e5</id>
<content type='text'>
Using api.BuildContext [1] is more efficient than building again because
some of the data from the previous build is cached and can be reused
if the original files haven't changed since the previous build.

While at it, we update the github.com/evanw/esbuild module to latest
release.

[1] https://esbuild.github.io/api/#rebuild
</content>
</entry>
<entry>
<title>all: move field bufout and buferr out of httpServer struct</title>
<updated>2023-09-28T10:31:58Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-09-28T08:36:05Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=6cb1e0f2263a528b29889743290e15258353087f'/>
<id>urn:sha1:6cb1e0f2263a528b29889743290e15258353087f</id>
<content type='text'>
Those fields are used on each HTTP request to /awwan/api/execute, which
make them not safe if two or more requests processed at the same time.
</content>
</entry>
<entry>
<title>all: create struct to handle HTTP server</title>
<updated>2023-09-28T08:30:18Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-09-28T08:30:18Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=3cfb38dd0f7a793f27ca6d348316e53ae9ec7105'/>
<id>urn:sha1:3cfb38dd0f7a793f27ca6d348316e53ae9ec7105</id>
<content type='text'>
All fields that use to serve HTTP API now moved inside one struct,
including memfsBase, bufout, and buferr.
</content>
</entry>
<entry>
<title>all: split type fsRequest to its separate file</title>
<updated>2023-09-28T07:57:32Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-09-28T07:57:25Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=db2e69b62ddb2038847237fb4434702057560b22'/>
<id>urn:sha1:db2e69b62ddb2038847237fb4434702057560b22</id>
<content type='text'>
</content>
</entry>
</feed>
