aboutsummaryrefslogtreecommitdiff
path: root/go.mod
AgeCommit message (Collapse)Author
2026-03-27go.mod: update pakakeh.go to the tipHEADmaindevShulhan
This fix the issue on play command where remote server only has one public key in the known_hosts file with the following error: initSSHClient: NewClientInteractive: dialWithSigners: \ ssh: handshake failed: knownhosts: key mismatch with known_hosts \ files [/home/ms/.ssh/known_hosts] This changes require replacing golang.org/x/crypto module with our own forks that implement the fix on the [ssh/knownhosts] package.
2026-02-15all: fix data race in Play and in integration testsShulhan
When the Play command executed from the web user interface, there is a possibility that concurrent requests set the sshConfig field in Awwan struct at the same time. In the integration tests for TestAwwan_Play_withLocal and TestExecLocal_sudo, the data race happens when writing to the same buffer for stdout and stderr, so we split them into separate buffers. There is also data race in SSE connection, when handler for ExecuteTail write to the same buffer with worker keep alive. This has been fixed on pakakeh.go module.
2026-02-11internal/cmd/www-awwan: add option to set shutdown idle durationShulhan
The `-shutdown-idle` option set the duration when server will stop accepting new connections and shutting down.
2026-02-09go.mod: update all dependenciesShulhan
This update affect the [ciigo.Serve] call in internal/cmd/www-awwan.
2026-02-03go.mod: update pakakeh.goShulhan
This fix the IsBinary that return true when file size is less than 1024.
2026-02-02internal/cmd/www-awwan: implement socket based activation using systemdShulhan
This allow us to run www-awwan only when its activated in the local environment.
2025-12-27all: update all dependencies and fix linter warningsShulhan
In the internal/, fix the "reuse lint" warnings due to embedded SPDX headers string that contains "\n" considered as invalid. Realign struct Statement based on fieldaligment check.
2025-10-03go.mod: update all dependenciesShulhan
2025-06-29go.mod: update all dependenciesShulhan
This commit also test WebHook on SourceHut.
2025-04-19go.mod: update all dependenciesShulhan
2025-02-07go.mod: update all dependenciesShulhan
2025-01-12all: update all dependenciesShulhan
2025-01-12go.mod: update all dependenciesShulhan
This changes remove the replace module and back to upstream. Maintaining fork is not easy and take a lot of time. As we seen in crypto fork, we are 10 minor version behind upstream.
2024-09-08go.mod: update all dependenciesShulhan
2024-04-06all: update module "pakakeh.go" to latest releaseShulhan
2024-03-22all: replace module "share" with "pakakeh.go"Shulhan
The "share" project has been moved to SourceHut with new name "pakakeh.go".
2024-02-08go.mod: update share moduleShulhan
2024-01-16all: add command env-keysShulhan
The "env-keys" command print list of environment variables under a directory. This command is internal, not documented, used by bash completion.
2024-01-06go.mod: update all dependenciesShulhan
2023-12-26go.mod: update share moduleShulhan
The update on share module fix several issues in "lib/ssh/config". Including, * Fix on SSH Config the default values. Using Host with different Port now working as expected. * Refactoring the Config merge. Using IdentityFile or UserKnownHostsFile with relative path in ".ssh/config", for example UserKnownHostsFile known_hosts will now load the known_hosts in the same directory as config file.
2023-12-22all: support cancellation when running command using SSH clientShulhan
This changes require us to replace golang.org/x/crypto with our fork, since the [ssh.Session.Run] with context is not available yet in upstream. Implements: https://todo.sr.ht/~shulhan/awwan/9
2023-12-22go.mod: update share and x/crypto moduleShulhan
This update is for security fixes in x/crypto on related to Prefix Truncation Attack.
2023-12-19go.mod: update share moduleShulhan
This fix fetching SSH config where Hostname is not set but host name may match with Host with wildcard.
2023-12-17all: change the remote temporary directory to "~/.cache/awwan"Shulhan
If the file to be copied contains sensitive data, putting them in "/tmp" considered a security risk, even though it will be moved to destination later. The issue is when the "#put" command failed, the plain file is left on "/tmp" directory. This changes add additional advantage where we did not need to remove the temporary directory on remote when execution completed, since the temporary directory should be accessible by user only. Implements: https://todo.sr.ht/~shulhan/awwan/8
2023-12-14go.mod: update module ciigo and shareShulhan
2023-12-14go.mod: replace esbuild with our own fork to fix rebuildShulhan
See https://github.com/evanw/esbuild/pull/3534
2023-12-10go.mod: update module ciigoShulhan
2023-12-09all: reduce the response on HTTP endpoint on GET fsShulhan
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].
2023-12-06go.mod: update all dependenciesShulhan
2023-12-01all: handle reconnecting when streaming executionShulhan
In "/awwan/api/execute/tail" SSE endpoint, in order for client to be able to reconnect and start streaming from the last know output, we need to send the ID for each message that we send. The ID is the index of Output in slice. If client does not send Last-Event-ID, we send all Output from beginning, otherwise, we send only message start from index in Last-Event-ID.
2023-12-01all: implement HTTP API to fetch execution output by IDShulhan
The new API is "GET /awwan/api/execute/tail" that implement Server-sent events, not a normal GET request. Its accept the query parameter "id" with value is 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. Implements: https://todo.sr.ht/~shulhan/awwan/5 Signed-off-by: Shulhan <ms@kilabit.info>
2023-11-22cmd/www-awwan: replace download links by requesting to server directlyShulhan
The contabostorage have an issues with cache. The file that we upload today, when downloaded by user may not the latest one. This changes require update on share module to use the latest [memfs.MemFS#Merge] method.
2023-11-21go.mod: update share moduleShulhan
This fix scanning directory that contains broken symlink.
2023-11-19all: update share moduleShulhan
The latest share module, in lib/crypto, handle loading SSH private key with passphrase interactively using a program defined in SSH_ASKPASS. This allow "awwan serve" that run without stdin, for example under systemd service, works seamlessly by setting environment variable SSH_ASKPASS to /usr/lib/ssh/x11-ssh-askpass. Implements: https://todo.sr.ht/~shulhan/awwan/3 Signed-off-by: Shulhan <ms@kilabit.info>
2023-11-17go.mod: update share moduleShulhan
The latest update on share module create file in lib/ini.Open when file does not exist.
2023-11-16go.mod: update share moduleShulhan
The update fix lib/memfs.Get with empty path.
2023-11-15all: implement HTTP API to encrypt fileShulhan
Similar to the CLI, the HTTP API accept the path of file and return the path to encrypted file.
2023-11-11go.mod: update module ciigoShulhan
2023-11-09go.mod: update share module to tipShulhan
2023-10-29go.mod: update share module to tipShulhan
The latest share module fix the generated embedded Go regarding regex for Includes and Excludes not compiled, which causes some files get included when running the instance with Watch method.
2023-10-29all: remove the node when requested from HTTP API /awwan/api/fsShulhan
Previously, the HTTP API for deleting node only remove the file but not the node in the memfs. This changes remove the child node from memfs, so the next refresh on directory will not contains the removed file.
2023-10-25all: log and simplify error when source file is not existShulhan
Previously, if the source file to be copied is not exist, awwan will output only error for the ".vault" file, twice, for example !!! Copy: <source>.vault: open <source>.vault not exist Local: Copy: <source>.vault: open <source>.vault not exist This changes make the first line output to print the original source file first, the non-ecrypted one, and then followed by encrypted one, ??? loadFileInput "<source>": not exist Local: Copy "<source>.vault": not exist
2023-10-21go.mod: update all dependenciesShulhan
2023-10-04go.mod: update share moduleShulhan
2023-09-28internal: replace esbuild api.Build with api.BuildContextShulhan
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
2023-09-27go.mod: update share to fix error checkingShulhan
2023-09-26go.mod: update share moduleShulhan
This fix "go install" on cmd/awwan that does build with the replace directive in share module which cause awwan not working properly.
2023-09-23go.mod: update all dependenciesShulhan
2023-09-20all: replace rsa.Decrypt/EncryptOAEP with libcrypto.Decrypt/EncryptOaepShulhan
The rsa.EncryptAOEP function has a maximum message size that they can encrypt (public key size - 2*hash.Size - 2). To fix this limitation we replace them with the one in libcrypto that extend the functions to allow encrypting and decrypting a larger message.
2023-09-20all: add method Encrypt to AwwanShulhan
The Encrypt method encrypt the file using private key from file "{{.BaseDir}}/.awwan.key". The encrypted file output will be on the same file path with ".vault" extension.