<feed xmlns='http://www.w3.org/2005/Atom'>
<title>awwan, branch v0.10.0</title>
<subtitle>Configuration management software, scriptable shell with SSH support.</subtitle>
<id>http://git.kilabit.info/awwan/atom?h=v0.10.0</id>
<link rel='self' href='http://git.kilabit.info/awwan/atom?h=v0.10.0'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/'/>
<updated>2023-12-16T07:46:10Z</updated>
<entry>
<title>Release awwan v0.10.0 (2023-12-16)</title>
<updated>2023-12-16T07:46:10Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-16T07:46:10Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=f30f14801a9ba2695c57448deda541e41a1363cc'/>
<id>urn:sha1:f30f14801a9ba2695c57448deda541e41a1363cc</id>
<content type='text'>
=== New features

internal/cmd: add flag "address" for command www-awwan::

  This is to allow using different address when running on local,
  without conflict with "serve-www" task in Makefile.

all: implement command "env-get" to get value from environment files::

  The env-get command get the value from environment files.
  Syntax,

      &lt;key&gt; [dir]

  The "key" argument define the key where value is stored in environment
  using "section:sub:name" format.
  The "dir" argument is optional, its define the directory where
  environment files will be loaded, recursively, from BaseDir to dir.
  If its empty default to the current directory.

all: implement command to set environment value with "env-set"::

  The env-set command set the value of environment file. Syntax,

	  &lt;key&gt; &lt;value&gt; &lt;file&gt;

  The "key" argument define the key to be set using "section:sub:name"
  format.
  The "value" argument define the value key.
  The "file" argument define path to environment file.

  For example, to set the value for "name" under section "host" to
  "myhost" in file "awwan.env" run

  ----
  $ awwan env-set host::name myhost awwan.env
  ----

  To set the value for key "pass" under section "user" subsection
  "database" to value "s3cret" in file "awwan.env" run

  ----
  $ awwan env-set user:database:pass s3cret awwan.env
  ----

_wui: implement Encrypt::

  In the right side of Save button we now have a button Encrypt that
  allow user to Encrypt opened file.

  This require the workspace has been setup with private key
  (.ssh/awwan.key) and pass file (.ssh/awwan.pass).

_wui: implement Decrypt::

  In the right side of Save button we now have a button Decrypt that
  allow user to Decrypt file with ".vault" extension only.

  This require the workspace has been setup with private key
  (.ssh/awwan.key) and pass file (.ssh/awwan.pass).

=== Breaking changes

all: make the magic line "#local" works on "local" command too::

  In case we have a script that manage local host and remote server,
  calling "play" on "#local" lines only always open the connection to
  remote server.

  To minimize opening unused connections, let the "#local" command works
  on both commands.  Its up to user which part of lines that they want
  to execute on remote or local.

_wui: use CTRL+Enter to trigger save instead of CTRL+s on editor::

  Using CTRL+s sometimes cause pressing s only trigger the save, due to
  fast typing (or keyboard error?).

=== Bug fixes

all: close the SSH connection once Play finished::

  Previously, we used to run awwan as CLI so each connection is open and
  closed once the command completed.
  Since we now use awwan WUI frequently, any command that execute Play
  does not close the session immediately once finished.
  This cause many connections open in remote server.

  This changes close the SSH connections immediately once the Play
  command finished.

all: fix memfs excludes regex::

  Previously, the regex does not contains "^" and "$" which makes
  file like "multi-user.target.wants" considered as ".tar" file and being
  excluded.

_wui: update editor component::

  Changes,

  - fix paste that always end with newline
  - fix editor content that got wrapped due to width
  - update layout without using float
  - replace execCommand with Selection

all: fix excludes on HTTP server related to .git::

  The HTTP server should excludes ".git" directory only, not the other
  files, like ".gitignore" or ".gitconfig".

all: always load SSH config when running Play::

  In case awwan run with "serve" and we modify the ".ssh/config", the
  changes does not detected by awwan because we only read ".ssh/config"
  once we Awwan instance created.

  This changes fix this issue by always loading SSH config every time
  the Play method executed so the user CLI and WUI has the same
  experiences.

=== Enhancements

all: reduce the response on HTTP endpoint on GET fs::

  Previously, the HTTP endpoint for "GET /awwan/api/fs" return the
  content of files when the requested node is a directory.
  This is cause unnecessary load because when requesting directory we
  only need list of file names not the content.

  This changes reduce the response by returning only list of node child
  without its content, which require update on share module on
  [Node.JSON].

_wui: use the output for displaying notification::

  Previously, we use a quick "pop-up" to display notification for each
  information or error from WUI.
  Sometimes this is annoying, it overlap the buttons, make it hard to
  Save and Encrypt at the same time.

  In this changes we move the nofication message to be displayed in
  the output, same with output of execution.

all: use the same date format between log and mlog package::

  In this way, the date-time output from log.Xxx and mlog.Xxx are
  consistent.

all: remove duplicate errors logged on Copy, Put, and SudoCopy::

  While at it, replace all call of [log.Printf] with [Request.mlog] so
  error both written to stderr and to [Request.Output].

_wui: do not clear output when executing another command::

  This allow user to see the output of previous command without opening
  the log file.

_wui: store and load the vfs width in local storage::

  This is allow user to resize vfs width in one window and when new
  window is opened the vfs width is restored with the same size.

_wui: disable button "Local" and "Play" when clicked::

  Once the execution completed, both buttons will be enabled again.
  While at it, add an icon to show the execution status.

_wui: rename "Remote" to "Play"::

  This is to make command between the CLI and WUI consistent.

all: refactoring HTTP endpoint for Execute::

  Previously, the Execute endpoint wait for command execution to finish.
  In case the command takes longer than proxy or server write timeout, it
  will return with a timeout error to client.

  In this changes, we generate an execution ID for each request and return
  it immediately.

  The new API "GET /awwan/api/execute/tail" implement Server-sent
  events, accept the execution ID from "/awwan/api/execute".

  Once called with valid ID, it will streaming the command output
  to client.

  By using this new API, the WUI can receive the output of command
  immediately without waiting for all commands to be completed.

_wui: add vertical resizer, to resize between VFS and editor::

_wui: allow all content type but decrease max file size to 1 MB::

  Previously, only file with type json, message, octet-stream, script,
  text, or XML that can be opened by editor.
  In this changes we allow all files as long as the size is less than
  1MB.

_wui: update vfs component::

  This changes allow user browse the crumb in path and item in the list
  using tab key.
  While at it, fix the layout to make VFS and editor aligned.

_wui: implement file filter::

  This changes move the text input for creating new file above the list.

  Filling the text field will filter the list based on the node name
  using regular expression.

  Another changes is for node with type directory now suffixed with "/".
</content>
</entry>
<entry>
<title>_wui/doc: change the HTML element "dt" to have bold font</title>
<updated>2023-12-16T07:43:48Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-16T07:43:48Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=fd1f9767f00b20fe0891344762234a6aaa9e8a38'/>
<id>urn:sha1:fd1f9767f00b20fe0891344762234a6aaa9e8a38</id>
<content type='text'>
This is for CHANGELOG so the subject of changes highlighted make it
different with the changes description.
</content>
</entry>
<entry>
<title>all: make the magic line "#local" works on "local" command too</title>
<updated>2023-12-14T13:23:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-14T13:23:19Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=7c3b034fc45beac1da465984117d5948110c84e3'/>
<id>urn:sha1:7c3b034fc45beac1da465984117d5948110c84e3</id>
<content type='text'>
In case we have a script that manage local host and remote server,
calling "play" on "#local" lines only always open the connection to remote
server.

To minimize opening unused connections, let the "#local" command works
on both commands.  Its up to user which part of lines that they want
to execute on remote or local.
</content>
</entry>
<entry>
<title>internal/cmd: add flag "address" for command www-awwan</title>
<updated>2023-12-14T13:23:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-14T13:07:50Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=708919bfb67398ca6d0464553faf10aadc28893b'/>
<id>urn:sha1:708919bfb67398ca6d0464553faf10aadc28893b</id>
<content type='text'>
This is to allow using different address when running on local, without
conflict with "serve-www" task in Makefile.
</content>
</entry>
<entry>
<title>all: close the SSH connection once Play finished</title>
<updated>2023-12-14T13:23:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-14T12:21:12Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=d281c094b88ab6bb2d6ccd0eb572d4275a9ab371'/>
<id>urn:sha1:d281c094b88ab6bb2d6ccd0eb572d4275a9ab371</id>
<content type='text'>
Previously, we used to run awwan as CLI so each connection is open and
closed (forcefully).
Since we now use awwan WUI frequently, any command that execute Play
does not close the session immediately once finished.
This cause many connections open in remote server.

This changes close the SSH connections immediately once the Play command
finished.
</content>
</entry>
<entry>
<title>go.mod: update module ciigo and share</title>
<updated>2023-12-14T13:23:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-14T12:17:52Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=1b1f3962ff42ee12ae6c573909629b61411cbddf'/>
<id>urn:sha1:1b1f3962ff42ee12ae6c573909629b61411cbddf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>all: fix memfs excludes regex</title>
<updated>2023-12-14T13:23:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-11T09:48:06Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=52728affe900424c456a596eaf34c83ae7e500d5'/>
<id>urn:sha1:52728affe900424c456a596eaf34c83ae7e500d5</id>
<content type='text'>
Previously, the regex does not contains "^" and "$" which makes
file like "multi-user.target.wants" considered as ".tar" file and being
excluded.
</content>
</entry>
<entry>
<title>go.mod: replace esbuild with our own fork to fix rebuild</title>
<updated>2023-12-14T13:23:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-09T21:31:36Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=0d1988930744df3f402aa81f7d2b8d927cb205a9'/>
<id>urn:sha1:0d1988930744df3f402aa81f7d2b8d927cb205a9</id>
<content type='text'>
See https://github.com/evanw/esbuild/pull/3534
</content>
</entry>
<entry>
<title>all: changes based on reports from linter revive</title>
<updated>2023-12-14T13:23:47Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-09T20:23:02Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=f1bcd6e27e9cbf541b9f6d76944bb491aede370a'/>
<id>urn:sha1:f1bcd6e27e9cbf541b9f6d76944bb491aede370a</id>
<content type='text'>
Better to fix and follow the reported warnings rather than adding
configuration file to add an exception.
</content>
</entry>
<entry>
<title>go.mod: update module ciigo</title>
<updated>2023-12-09T20:16:57Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-12-09T20:16:57Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/awwan/commit/?id=87b79dbd1da7acc73456b3fbfe59a40b59bf116f'/>
<id>urn:sha1:87b79dbd1da7acc73456b3fbfe59a40b59bf116f</id>
<content type='text'>
</content>
</entry>
</feed>
