Releases: Snowflake-Labs/sansshell
Minor util updates
Move code for adding ports to hosts optionally into a util library so it can be reused by other binary implementors.
In general we only want a minimal main() here so booting up your own binary is trivial.
More parallel proxy and new services
Increase parallelism on the proxy to be completely non-blocking per stream.
In the past requesting N new streams but having one of those streams block on a timeout would backup everything for a minimum of 20s (the default connection timeout). If the overall timeout wasn't that long no work could get done. Now the proxy returns immediately on a new stream request and does all connection work asynchronously. It may still block if client streaming (i.e. Localfile.Write) gets too far ahead of connected clients but as most RPCs are unary this generally isn't a problem.
Link in channelz support so it can be queried if desired.
Remove flag definitions in packages and export vars instead. Then rebind in package main for the commands.
NOTE: Implementors with their own versions of the server/CLI will need to bind the flags to have them work again.
Rework how servers start so it's easy/possible for others to add their owner interceptors to the server. This allows metrics/tracing linkage without forcing a specific implementation.
Add FDB service implementing support for wrapping fdbcli and a definition for editing the config file remotely as well (implementation in next release).
Add rm support in localfile (as Remove)
Minor documentation and CLI cleanups for clarity
v1.5.0: Make sure we include file support for blobs. (#113)
Move blob imports into sansshell-server main. It's an example server where-as there's no way to import the services without getting these whether you want them or not.
Also include file support now and adjust the cp command to be able to use it.
v1.4.0: Remove hard coded timeout on context. (#111)
Add version RPC and CLI support
Fix bug with hard coded context timeouts in sansshell and healthcheck modules
Add /Process.Kill RPC endpoint and fix CLI IPv6/port bugs
Add kill to RPCs in process module (#103) * Add kill to process to send signals to a given pid. No support for wildcarding with negative pids/signals (too dangerous) * Client side of kill * Integration testing for kill. shfmt also redid some lines
v1.2.0: Add directory field to ExecuteState so we have a place to write (#105)
N other logs a service might generate in response.
Update to g 1.18
v1.1.0 Update to go 1.18 (#102)
v1.0.10
Update dependency packages (#101)
v1.0.9: Add some needed exec options: (#99)
* Add some needed exec options: Run as a specific user/group Append specific env vars to the otherwise clean environment. Tests for everything * Simplify uid/gid by prepopulating with our euid/gid
v1.0.8: Add support for CLI quality of life updates: (#95)
* Add support for --targets-file - File with list of targets Default port settings $SANSSHELL_PROXY env var * We're allowed now to just have a proxy and no targets depending on action. * Fix check to be correct * Require at least one target and pass it even for changing proxy log level * Change back to requiring target or proxy * No use tracking eof state if we don't set it. Otherwise we loop again and always see EOF and drop the errors we might have gotten. * Allow no targets so you can still get a Conn to the proxy. Won't work except for proxy only RPCs like log levels but this makes it avoid passing a needless target * Fix a typo * Remove need to set a target for a proxy only action