diff --git a/CHANGELOG.md b/CHANGELOG.md index a273d4d69..29ee1f12c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,500 +1,508 @@ -| Date | Issue | Description | -|------------|-------|-----------------------------------------------------------------------------------------------------------| -| 2022/06/08 | 1713 | Allow access to the broker system account via unverified TLS given a JWT with the system permission | -| 2022/06/06 | 1703 | Adds `kv create` and `kv update` | -| 2022/06/06 | 1708 | Move to `fisk` CLI package, improve default help output verbosity | -| 2022/06/02 | 1704 | Support EL9 | -| 2022/05/26 | 1697 | Support subject mappings witin the Choria Brokers for partitioning | -| 2022/05/10 | 1665 | Introduce a new kind of Application by adopting the `appbuilder` project and extending it for Choria | -| 2022/05/09 | 1663 | Adds a `semver` reply filter function | -| 2022/05/28 | 1659 | Use core Go list of supported ciphersuites | -| 2022/05/20 | 1654 | Prevent use of JWT tokens with incorrect caller ID | -| 2022/05/14 | 1649 | Fix typo in generated code | -| 2022/05/12 | 1647 | Expand the `inventory` registration payload to include version, hash and auto agent information | -| 2022/05/11 | 1645 | Work around breaking change in nats.go related to KV access | -| 2022/05/08 | 1643 | Allow slow TTLs for leader elections | -| 2022/05/06 | 1640 | Improve reliability of clean shutdowns | -| 2022/04/05 | 1445 | Reject agents without a name or too small timeout | -| 2022/04/05 | 1636 | Support skipping system stream management |s -| 2022/04/05 | 1591 | Use correct credentials when running `choria broker server check jetstream` | -| 2022/04/05 | 1633 | Remove the Provisioner agent `release_update` action | -| 2022/03/31 | 1630 | UX improvements for `choria kv` | -| 2022/03/30 | 1628 | Use correct credentials when running `choria broker server check kv` | -| 2022/03/29 | 1625 | When using the embedded `nats` cli allow a custom Choria configuration to be set | -| 2022/03/22 | 1619 | Adds full end to end integration testing | -| 2022/03/21 | | Improve logging during initial connection establishment | -| 2022/03/17 | 1615 | Remove obsolete operating system distributions | -| 2022/03/16 | | Switch to go 1.18 | -| 2022/03/10 | | Redact some passwords when logging | -| 2022/03/01 | 1608 | Improve hostname validation checks in flatfile discovery | -| 2022/02/25 | | Release 0.25.1 | -| 2022/02/25 | 1604 | Fix startup on windows | -| 2022/02/23 | | Release 0.25.0 | -| 2022/02/07 | 1590 | Support checking server JWT token validity | -| 2022/01/18 | 1405 | Add 64 bit ARM packages | -| 2022/01/18 | 1576 | Allow custom builders to set the server service to auto start after install | -| 2022/01/17 | 1573 | Compatibility fix for 32 bit builds | -| 2022/01/17 | 1571 | Improve starting Choria Streams between reboots | -| 2022/01/13 | 1568 | Improve `tool provision` so debugging custom provisioning targets is more reliable | -| 2022/01/12 | 1561 | Correctly handle missing server configuration files when a custom provisioner is set | -| 2022/01/10 | 1555 | Ensure filters work with async requests in the `choria req` command | -| 2021/12/17 | 1526 | Support trace logging of the embedded nats CLI | -| 2021/12/16 | 1549 | Expand the `jwt` command to create other types of JWT and move to `choria jwt` | -| 2021/12/16 | 1547 | Unify the `kv del` and `kv rm` commands | -| 2021/12/07 | 1543 | Remove NATS Streaming Server support | -| 2021/12/07 | 1541 | Improve `choria tool governor run` when the broker is down | -| 2021/11/29 | 1522 | Specifically use `choria broker run` to start the broker | -| 2021/11/24 | 1526 | Import the `nats` CLI tool into Choria under `choria broker` | -| 2021/11/19 | 1522 | Support enabling connection `nonce` feature allowing per connection private key validation | -| 2021/11/25 | 1522 | Extend provisioning agent to on board ed25519 seeds and process signed JWTs from the provisioner | -| 2021/11/12 | 1509 | Allow JWT clients to have permissions that can restrict access to Choria Streams related features | -| 2021/11/12 | 1509 | Extract all jwt handling code in all packages into a new `tokens` package | -| 2021/11/09 | 1507 | Allow non TLS connections from both servers and clients in combination of AAA and Provisioner using JWTs | -| 2021/10/28 | 1502 | Move to NATS official KV implementation, formalize Leader Election in Choria Broker | -| 2021/10/28 | 1499 | Avoid leaving some tempoary directories around in the archive watcher | -| 2021/10/28 | 1495 | Allow succesfull KV operations that do not change data to transition autonomous agents | -| 2021/10/28 | 1494 | Relax identity validation in flatfile discovery to avoid rejecting some valid hostnames as identities | -| 2021/10/27 | 1491 | Add `--senders` to `choria req` that shows only those replying identities | -| 2021/10/26 | 1487 | Support for latest Cert Manager APIs | -| 2021/10/25 | 1482 | Support tallying governor events | -| 2021/10/25 | 1483 | Allow custom loggers to be passed to Choria and avoid changing settings of the default logrus logger | -| 2021/10/25 | 1480 | Support tallying wildcard components rather than just a single component | -| 2021/10/15 | | Add SPDX License Identifier and Copyright to source files | -| 2021/10/15 | 1475 | Support `stdout` and `stderr` as logging destinations in addition to `discard` and a file name | -| 2021/10/14 | 1472 | Show additional `mco choria show_config` style information in `choria tool config` | -| 2021/10/14 | | Change docker base to AlmaLinux | -| 2021/10/12 | 1241 | Refactor DDL resolution, support querying Choria Registry for unknown DDLs | -| 2021/10/07 | 1462 | Adds a new `machines` watcher to manage Choria Autonomous Agents, not enabled by default | -| 2021/10/06 | 1459 | Adds a new `archive` watcher to manage `tgz` files, not enabled by default | -| 2021/10/05 | 1454 | Support asserting provisioning state in the health check plugin | -| 2021/10/05 | 1455 | Ignore machines with `-temp` name suffix and the `tmp` directory | -| 2021/09/27 | 1446 | Compatibility fix for latest NATS Server code regarding dynamic limits | -| 2021/09/22 | 1438 | Allow `choria scout watch` to show only state changes | -| 2021/09/22 | 1438 | Add a CLI API for managing KV buckets | -| 2021/09/20 | | Release 0.24.0 | -| 2021/09/19 | 1428 | Adds a helper to assist in creation of Governors from automation tools | -| 2021/09/17 | 1426 | Do not attempt to also load embedded Autonomous Agents from disk | -| 2021/09/14 | 1418 | Allow provisioning of Action Policies and Open Policy Agent Policies via Choria Provisioner | -| 2021/09/13 | 1415 | Support listing known Governors | -| 2021/09/13 | 1413 | Do not create unconfigured Governors when viewing a non existing Governor | -| 2021/09/13 | 1411 | Add `--force` / `-f` to `choria governor add` | -| 2021/09/09 | 1407 | Create the `plugin.choria.machine.store` directory if it does not exist | -| 2021/09/06 | 140 | Do not update file mtime on skipped checks in the File watcher | -| 2021/09/06 | 1401 | Add a `splay` option to the Timer Watcher | -| 2021/09/03 | 1397 | Handle JSON data in data better in Autonomous Agent data layer allowing for nested lookups | -| 2021/09/02 | 1388 | Various refactors of Debian packages to behave more consistently with RedHat startup/restart flows | -| 2021/09/02 | 1393 | Fix logging of embedded NATS Server to Choria logs | -| 2021/09/01 | 1386 | Introduce a faster broadcast discovery timeout using sliding windows, behind a opt-in setting | -| 2021/08/31 | 1384 | Allow Autonomous Agents to be compiled into the server as plugins | -| 2021/08/31 | 1377 | Initial support for performing AAA Server signing requests via Choria Services rather than HTTPS | -| 2021/08/27 | 1377 | Internal refactoring to improve cross/cyclic package import problems | -| 2021/08/24 | | Release 0.23.0 | -| 2021/08/24 | | Support Debian 11 | -| 2021/08/23 | 1367 | Enable the `choria_provision` agent when provisioning is supported | -| 2021/08/18 | 1359 | Support sorting `choria req` output by identity using `--sort` | -| 2021/08/18 | 1358 | Ensure SSL Cache is created if needed during provisioning | -| 2021/08/18 | 1357 | Correctly enter provisioning with a configuration file and without a Puppet installation | -| 2021/08/17 | 1355 | Support receiving private keys from the provisioner, protected using Curve 25519 ECDH shared secrets | -| 2021/08/16 | 1353 | Ensure no responses list and unexpected responses list always prints, capped to 200 nodes | -| 2021/08/11 | 1344 | Fix setting workers and expr filter on generated clients | -| 2021/08/10 | 1342 | Include the Public Key in the CSR reply, add data type hints to the provisioner DDL and update client | -| 2021/08/09 | 1331 | Include the time a RPC Reply was generated in the reply | -| 2021/08/09 | 1337 | Generated clients can accept a Choria Framework, avoiding config loading etc | -| 2021/08/09 | 1335 | Support entering provisioning mode when the supplied `server.conf` does not exist | -| 2021/08/09 | 1333 | Disable RPC Auth during provisioning mode | -| 2021/08/04 | 1326 | Rename the `jetstream` adapter to `choria_streams` | -| 2021/08/03 | 1324 | Allow compiled-in Go agents to access the Submission system | -| 2021/08/03 | 1321 | Improve the broker shutdown process to cleanly shut down Choria Streams | -| 2021/08/03 | 1319 | Use correct Choria reply subjects when interacting with the Streams API | -| 2021/08/02 | 1316 | Extend the RPC Reply structure to include what action produced the data | -| 2021/08/02 | 1314 | Support Asynchronous Request mode in generated Go clients | -| 2021/07/25 | 1310 | Export certificate expiry time in Choria status files, support checking from CLI and Scout | -| 2021/07/19 | 1291 | Support templates in Exec Watcher `cmd`, `env` and `governor` | -| 2021/07/12 | 1291 | Expose `kv` data to the Autonomous Agent data system | -| 2021/07/12 | 1291 | Add a Choria Key-Value Store accessible using `choria kv` and a new `kv` Autonomous Agent Watcher | -| 2021/07/12 | 1291 | Allow Exec Watchers to access node facts | -| 2021/07/12 | 1291 | Add a Autonomous Agent level data store, allow Exec Watchers to gather and store data in a Auto Agent | -| 2021/07/09 | 1289 | Additional Prometheus statistics for Choria Streams | -| 2021/07/05 | 1276 | Support Governors in the Exec Autonomous Agent watcher | -| 2021/07/02 | 1276 | Introduce `choria governor` for network wide concurrency control | -| 2021/06/30 | 1277 | Support PKCS8 containers | -| 2021/06/23 | 1273 | Introduce Choria Submission to allow messages to be placed into Streams via Choria Server | -| 2021/06/21 | 1272 | Use default client-like resolution to find brokers in the JetStream adapter when no urls are given | -| 2021/06/09 | 1042 | Rate limit fast transitions in autonomous agents | -| 2021/06/09 | 1264 | Allow a random sleep at the start of schedules for the Schedule watcher | -| 2021/06/06 | 1259 | Allow the default client suffix to be set at compile time (eg. rip.mcollective user id) | -| 2021/06/06 | 1258 | Allow the default collective to be set at compile time | -| 2021/06/03 | 1256 | Fail when a client cannot determine its identity | -| 2021/05/11 | 1250 | Improve sorting of `choria inventory` columns | -| 2021/04/28 | 1246 | Adds a `choria login` command that supports delegating to `choria-login` in `PATH` | -| 2021/04/27 | 1241 | Initial implementation of the `choria_registry` service agent | -| 2021/04/27 | 1243 | Support Websockets for connectivity from Leafnodes and Choria Server to Choria Broker, also Go clients | -| 2021/04/23 | 1234 | Allow the Choria Server to run in an Services-Only mode | -| 2021/04/23 | 1238 | Improve some core DDLs with better type hints | -| 2021/04/22 | | Release 0.22.0 | -| 2021/04/22 | 1234 | Initial support for Service Agents | -| 2021/04/21 | 1232 | Autonomous Agent transitions now support a human friendly description | -| 2021/04/19 | 1227 | Import the provisioning agent into this code base since it's now always compiled in | -| 2021/04/16 | 1222 | Create `choria plugin doc` and move `tool generate` to `plugin generate` | -| 2021/04/15 | 1220 | Handle filter expressions that are not obviously boolean better | -| 2021/04/13 | 1216 | Improve startup logs when skipping agents in specific providers | -| 2021/04/08 | 1213 | Increase leafnode authentication timeout | -| 2021/04/08 | 1211 | Improve randomness of limited targets | -| 2021/04/07 | 1207 | Support wider duration specification by supporting week, month, year etc | -| 2021/04/05 | 1204 | Enable new Go based action policy by default | -| 2021/04/01 | 1201 | Support the old `boolean_summary` aggregator and generic output name remapping in summary aggregator | -| 2021/03/30 | 1195 | Default to the `choria` account for leafnodes | -| 2021/03/30 | 1197 | Improve consistency of time durations in ping output | -| 2021/03/30 | 1195 | Fix ordering of leafnode and acounts setup | -| 2021/03/29 | 1193 | JetStream Adapter can publish to wildcard streams with per identity subjects | -| 2021/03/29 | 1189 | Use correct target for registration messages | -| 2021/03/29 | | Release 0.21.0 | -| 2021/03/26 | 1189 | Add a new registration plugin that sends the running inventory rather than file contents | -| 2021/03/25 | 1187 | Support enabling listening `pprof` port | -| 2021/03/23 | 1185 | Fix validation for integers in the DDLs | -| 2021/03/23 | 1183 | Fail `choria facts` when no nodes match supplied filters | -| 2021/03/19 | 1180 | Restore the data plugin report in rpcutil#inventory | -| 2021/03/19 | 1178 | Do not send the filter verbatim in `choria req` | -| 2021/03/18 | 1175 | Add a client specific `TLSConfig()`, improve adapters and federation support for legacy certs | -| 2021/03/18 | 1173 | Create a `choria` account in NATS, move all connections there, enable `system` account | -| 2021/03/17 | 1170 | Correctly calculate advertise URL | -| 2021/03/10 | 1165 | Improve support for Clustered JetStream | -| 2021/03/10 | 1161 | Add a `machine_state` data plugin | -| 2021/03/05 | 1156 | Support retrieving a single choria autonomous agent state using choria_util | -| 2021/03/02 | 1154 | Support building ppc64le EL7 and EL8 RPMs | -| 2021/03/02 | 1152 | Improve ping response calculations in federated networks | -| 2021/03/01 | 1150 | Avoid unnecessary warning level logs | -| 2021/02/23 | | Drop support for Enterprise Linux 6 due to go1.16 | -| 2021/02/22 | 1147 | Correctly detect stdin discovery | -| 2021/02/17 | 1145 | Improve stability of `choria scout watch` | -| 2021/02/03 | | Release 0.20.2 | -| 2021/02/03 | 1140 | Ensure logging doesn't happen at warn level | -| 2021/02/03 | | Release 0.20.1 | -| 2021/02/03 | 1140 | Ensure that only client/server connections use no SAN TLS work around, not brokers | -| 2021/02/03 | | Release 0.20.0 | -| 2021/02/02 | 1136 | Improve progress bars on small screens | -| 2021/02/02 | | Sort classes tags in discovery command and elsewhere | -| 2021/02/01 | 1074 | Initial support for Data Providers, add `choria`, `scout`, `config_item` providers | -| 2021/01/29 | 1123 | Perform identity-only discovery optimization in `broadcast` and `puppetdb` discovery methods | -| 2021/01/29 | 1121 | Add a `--silent` flag to `choria discover` to improve script integration | -| 2021/01/28 | 1060 | Support go 1.15 by putting in work around to support Puppet SAN free TLS certificates | -| 2021/01/28 | | Add a bash completion script in `choria completion` in addition to current ZSH support | -| 2021/01/24 | 1113 | Adds a new `inventory` discovery method | -| 2021/01/23 | 1110 | Improve SRV handling when trying to find PuppetDB host | -| 2021/01/23 | 1098 | Improve `choria tool config` to show config files and active settings | -| 2021/01/22 | 1102 | Ensure we discover `rpcutil` in the `discover` command, improves PuppetDB integration | -| 2021/01/20 | 751 | Add project level Choria configuration | -| 2021/01/21 | 1098 | Allow options to be passed to discovery methods using `--discovery-option` | -| 2021/01/18 | 1081 | Support flatfile discovery from json, yaml, stdin and improve generated clients | -| 2021/01/16 | 1092 | Add the `external` discovery method | -| 2021/01/18 | 1072 | Performance improvements for expr expression handling | -| 2021/01/14 | 281 | Improve identity handling when running on windows, non root and other situations | -| 2021/01/13 | 1089 | Support request chaining in the req command | -| 2021/01/13 | | Release 0.19.0 | -| 2020/01/12 | 1086 | Create a `choria facts` command | -| 2020/01/12 | 1084 | Support full GJSON Path Syntax in rpcutil#get_fact, fix a crash on map data in aggregators | -| 2020/01/10 | 1081 | Standardise filter and discovery CLI options | -| 2020/01/10 | 1074 | Support compound filters using `expr` | -| 2020/01/09 | 1076 | Improve support for HTTPS servers discovered by SRV records by stripping trailing `.` in names | -| 2021/01/09 | 1074 | Basic support for Data plugin DDLs | -| 2021/01/09 | 1072 | Add `expr` based client-side filtering of RPC results | -| 2021/01/08 | 1068 | Improve support for the `color` option and disable it by default on windows | -| 2021/01/07 | 1064 | Calculate `choria ping` times from the moment before publish and report overhead | -| 2021/01/07 | 1062 | Support parsing nagios format Perfdata as output format for the metric watcher | -| 2020/12/29 | 1055 | Report the certificate fingerprint when doing `choria enroll` for Puppet CA | -| 2020/12/28 | 1051 | Add `choria discover` | -| 2020/12/27 | 1049 | Generated clients has a PuppetDB name source | -| 2020/12/27 | 1049 | rpc client will now honor the DefaultDiscoveryMethod setting for all clients | -| 2020/12/27 | 1049 | Add `--dm` to the `choria req` command to switch discovery method | -| 2020/12/27 | 1049 | Add a PuppetDB discovery method | -| 2020/12/27 | 1047 | Create generated clients for `rpcutil`, `scout` and `choria_util` in `go-choria/client` | -| 2020/12/26 | 1045 | Add `choria inventory` | -| 2020/12/16 | 1017 | Avoid listening and registering with mDNS when Homekit is not used | -| 2020/12/12 | 1038 | Add a `choria_status` Nagios builtin allowing Choria to health checks from Scout | -| 2020/12/09 | 1035 | Ignore case when matching against configuration management classes | -| 2020/12/09 | 1035 | Ignore case when doing fact matching | -| 2020/12/08 | 1030 | Allow Autonomous Agent Watchers to be plugins, convert all core ones to plugins | -| 2020/12/03 | | Major code cleanups and and test coverage for the Autonomous Agents | -| 2020/11/29 | 1009 | Perform DNS lookups on every initial reconnect retry | -| 2020/11/28 | 1007 | Add a `metrics` Autonomous Agent watcher that can fetch and publish metrics | -| 2020/11/27 | 1006 | Use new JetStream features to improve retrieval of event history | -| 2020/11/25 | | Release 0.18.0 | -| 2020/10/21 | 999 | Add a timer watcher that changes state after a time expires | -| 2020/10/21 | 999 | Support creating Apple Homekit buttons in Autonomous Agents | -| 2020/09/28 | | Release 0.17.0 | -| 2020/09/04 | 989 | Add a generic shell completion helper and support ZSH completion | -| 2020/08/25 | 987 | Support NATS Leafnodes to extend the Choria Broker in a TLS free way specifically usable by AAA clients | -| 2020/08/03 | 982 | Scout checks can have annotations that are published in events | -| 2020/08/03 | 920 | Add `choria scout maintenance` and `choria scout resume` commands | -| 2020/08/01 | 920 | Add a `choria scout trigger` command that triggers an immediate check and associated events | -| 2020/08/01 | 977 | Generated clients can now set a progress bar | -| 2020/07/30 | 975 | Prevent int overflow in time fields in some Scout events | -| 2020/07/26 | 920 | Add a `--table` option to `choria req` and a new formatter in generated clients | -| 2020/07/26 | 920 | Add a `choria scout status` command that can show all checks on a node | -| 2020/07/24 | 968 | Improve the history presented in Scout events | -| 2020/07/22 | 966 | Remove the concept of a site wide Gossfile | -| 2020/07/21 | 964 | Allow multiple Gossfiles and multiple Goss checks | -| 2020/07/18 | | Release 0.16.0 | -| 2020/07/18 | 960 | Add a `choria scout watch` command | -| 2020/07/17 | 957 | Restore the ability for DDLs to declare display formats for aggregate outputs | -| 2020/07/16 | 948 | Support performing `goss` validation in the `nagios` autonomous agent | -| 2020/07/15 | 842 | Avoid zombies when Ruby agents exceed their allowed run time | -| 2020/07/09 | 944 | Extract the generic result display logic from `choria req` into a reusable package | -| 2020/07/09 | 942 | Include a snapshot of recent check states in published check events | -| 2020/07/08 | 939 | Improve using the supplied logger in generated clients | -| 2020/07/08 | 938 | Add helpers to parse complex data in generated clients | -| 2020/07/08 | 937 | Generated clients perform 2 discoveries per request | -| 2020/07/07 | 935 | Release packages for Ubuntu Focal (20.04 LTS) | -| 2020/07/07 | 932 | Fix targeting a specific sub collective in the `req` command | -| 2020/07/07 | 928 | Add a new `scout` agent and Golang client | -| 2020/07/03 | 920 | Initial work on a Scout framework towards building a monitoring related distribution | -| 2020/07/01 | | Release 0.15.0 | -| 2020/06/29 | 913 | Support preparing for shutdown by closing connections and emiting shutdown events when embedded | -| 2020/06/26 | 895 | Support NATS JetStream Streaming Server in Choria Broker | -| 2020/06/24 | 907 | Support arm5 and 7 Debian packages | -| 2020/06/20 | 895 | Support Nagios compatible plugins in the new `nagios` autonomous agent watcher | -| 2020/06/16 | 893 | Server instances embedded in other software can now be shutdown using `Shutdown()` | -| 2020/06/15 | 887 | Track nodes expired by maintenance in the tally helper | -| 2020/06/13 | | Improve FQDN resolution when running in a kubernetes pod | -| 2020/06/12 | 879 | Allow the public name of the network broker to be configured | -| 2020/06/12 | 877 | Support cert-manager.io as security provider | -| 2020/06/07 | 865 | Correctly handle provisioning by SRV domain | -| 2020/06/07 | 863 | Allow provisioning brokers to have user/password authentication | -| 2020/05/14 | 860 | Perform backoffs between reconnects to the network broker | -| 2020/04/22 | 857 | Cosmetic improvements to windows packages | -| 2020/04/19 | | Release 0.14.0 | -| 2020/04/16 | 854 | Correctly report insecure builds | -| 2020/04/07 | 852 | Install `choria` binary in /usr/bin and not /usr/sbin | -| 2020/03/25 | 846 | Various improvements to generated RPC clients | -| 2020/03/24 | 844 | Export facts to external agents | -| 2020/03/22 | 801 | Expose statistics for NATS Leafnodes | -| 2020/03/16 | 840 | Improve formatting of node lists at the end of requests | -| 2020/03/11 | 687 | Support enforcing the use of filters on all RPC requests using `plugin.choria.require_client_filter` | -| 2020/03/03 | 834 | Add Debian Buster support | -| 2020/02/17 | 831 | Cache transport messages when doing batched requests to improve pkcs11 integration | -| 2020/02/13 | 827 | Ensure agent filter is added when discovering nodes | -| 2020/02/08 | 817 | Add `choria tool config` to view configuration paramters and current values | -| 2020/02/08 | 814 | Set `PATH` when calling external agents | -| 2020/02/05 | 794 | Merge `go-lifecycle` into `go-choria` | -| 2020/02/05 | 794 | Merge `go-protocol`, `go-security`, `mcorpc-agent-provider` and `go-config` into `go-choria` | -| 2020/02/05 | 794 | Merge `go-confkey`, `go-validator`, `go-puppet`, `go-network-broker` and `go-srvcache` into `go-choria` | -| 2020/01/30 | | Update to CloudEvents 1.0.0 | -| 2020/01/23 | 774 | Support logging to Windows Event log | -| 2020/01/23 | 772 | Support running as a Windows service | -| 2020/01/17 | 769 | Add basic Windows pacakges | -| 2020/01/16 | | Support use selectable SSL Ciphers using `plugin.security.cipher_suites` and `plugin.security.ecc_curves` | -| 2020/01/12 | | Release 0.13.1 | -| 2019/12/25 | 758 | Extract RPC reply rendering to the mcorpc package-agent-provider | -| 2019/12/23 | 754 | Extract parts of the filter parsing logic to the `protocol` package | -| 2019/12/15 | 746 | Support remote request signers such as `aaasvc` | -| 2019/12/09 | 743 | Support generating Go clients using `choria tool generate client` | -| 2019/12/05 | | Release 0.13.0 | -| 2019/12/05 | 737 | Add a tech preview JetStream adapter | -| 2019/12/04 | 731 | Switch to CloudEvents v1.0 format for lifecycle events and machine events | -| 2019/12/02 | 709 | Build RHEL 8 packages nightly and on release | -| 2019/12/02 | 548 | Improve startup when embedding the server in other programs | -| 2019/11/29 | 724 | Improve stability on a NATS network with Gateways | -| 2019/11/28 | 720 | Improve the calculations of total request time in the `choria req` command | -| 2019/11/21 | 710 | Support Synadia NGS as a NATS server for Choria | -| 2019/10/26 | 705 | Add `choria tool jwt` to create provisioning tokens | -| 2019/10/25 | 705 | Allow a JWT file to configure provisioning behavior and enable provisioning in the FOSS binary | -| 2019/10/14 | 703 | Allow `choria req` output to be saved to a file | -| 2019/10/01 | 700 | Force convert a DDL from JSON on the CLI without prompts | -| 2019/09/20 | | Release 0.12.1 | -| 2019/09/19 | | Support Authorization and External Agents via latest MCORPC provider | -| 2019/09/16 | 681 | Allow agents to associate with specific agent providers using the `provider` field in metadata | -| 2019/09/12 | 678 | Support generating Ruby and JSON DDL files using `choria tool generate ddl` | -| 2019/09/09 | | Release 0.12.0 | -| 2019/09/09 | | Broker based on NATS 2.0 via `go-network-broker` version `1.3.1` | -| 2019/09/07 | 670 | Improve the output from `choria ping --graph` | -| 2019/09/06 | 664 | Add a pkcs11 security provider | -| 2019/09/04 | 663 | Add a `choria req` tool to eventually replace `mco rpc` | -| 2019/08/09 | 652 | Write init scripts to the correct location on RHEL | -| 2019/07/24 | 642 | Show dependencies compiled into the binary in `choria buildinfo` | -| 2019/07/15 | 632 | Decrease memory use in adapters by lowering the work queue length | -| 2019/06/27 | 621 | Choria Provisioner is now a proper plugin | -| 2019/06/27 | 623 | Support `agents.ShouldActivate()` checks when loading agents | -| 2019/06/26 | 617 | Support NATS 2.0 credentials and user/password | -| 2019/06/26 | 617 | Fix `choria ping` | -| 2019/06/12 | | Release 0.11.1 | -| 2019/04/20 | | Support email SANs in client certificates via `go-security` `0.4.2` | -| 2019/06/11 | 609 | Verify that only known transitions and states are mentioned in the machine specification | -| 2019/06/11 | 607 | Ensure the machine directory is in the `PATH` | -| 2019/05/30 | 605 | Fix `environment` handling for exec watchers | -| 2019/05/29 | 602 | Ensure machines are runable on the CLI | -| 2019/05/29 | 599 | Support run-once exec watchers by setting `interval=0` | -| 2019/05/29 | 597 | Do not manage Autonomous Agents in provisioning mode | -| 2019/05/28 | 591 | Add a `scheduler` watcher for Autonomous Agents | -| 2019/05/27 | | Release 0.11.0 | -| 2019/05/23 | | Log discovery requests in a similar manner to RPC requests via `mcorpc-agent-provider` `0.4.0` | -| 2019/05/23 | | Fix puppet provider support for `SecurityAlwaysOverwriteCache` via `go-security` `0.4.0` | -| 2019/05/23 | | Improve excessive logging when privilged certificates are used via `go-security` `0.4.0` | -| 2019/05/23 | | Only write certificates on change if `SecurityAlwaysOverwriteCache` is set via `go-security` `0.4.0` | -| 2019/05/22 | 554 | Retry SRV lookups on reconnect attempts | -| 2019/05/27 | 563 | Support Choria Autonomous Agents | -| 2019/03/21 | 557 | Force puppet environment to `production` to avoid failures about missing environment directories | -| 2019/03/19 | 557 | Improve error messages logged when invoking `puppet` to retrieve setting values fail | -| 2019/03/15 | 555 | Add a basic utility to assist with creating deep monitoring `choria tool status` | -| 2019/03/04 | | Release 0.10.1 | -| 2019/02/25 | | Resolve broker instability on large networks via `go-network-broker#19` | -| 2019/01/23 | | Release 0.10.0 | -| 2019/01/17 | | Various fixes to privileged security certificate handling via `go-security` release `0.3.0` | -| 2019/01/17 | | Allow limiting clients to sets of IPs via `go-network-broker#12` | -| 2019/01/09 | 534 | Ensure the server status file is world readable | -| 2019/01/07 | 532 | Force exit even when worker routines are not done after `soft_shutdown_timeout`, default 2 seconds | -| 2019/01/05 | 530 | Further fixes to avoid concurrent hash access panics for golang client code | -| 2019/01/03 | 524 | Include the server version when creating life cycle events | -| 2018/12/27 | 521 | Improve `alive` event spread by sleeping for up to a hour for initial publish | -| 2018/12/27 | 519 | Expose `security.Validate` to users of the go framework | -| 2018/12/27 | | Release 0.9.0 | -| 2018/12/26 | | Fix reboot splay time when doing self updates via `provisioning-agent#67` | -| 2018/12/26 | | Increase `choria_util` agent timeout to facilitate slow facter runs via `mcorpc-agent-provider#36` | -| 2018/12/26 | 515 | Cache facter lookups | -| 2018/12/21 | 510 | Publish new `alive` life cycle events every hour | -| 2018/12/19 | | support `~/.choriarc` and `/etc/choria/client.conf` for client configs | -| 2018/12/19 | | Report protocol security and connector TLS in `choria_util#info` via `mcorpc-agent-provider#33` | -| 2018/12/19 | 501 | Allow default configuration values to be mutated at startup using a plugin | -| 2018/12/07 | 495 | Allow server status to be written during provision mode | -| 2018/11/30 | | Release 0.8.0 | -| 2018/11/28 | 489 | Avoid a panic that affected clients written in Go when closing connections to the broker | -| 2018/11/23 | | Improve backward compatibility when handling slashes in regex for allowed certs (go-security#22) | -| 2018/11/23 | 485 | Fail gracefully in the `ping` app when the configuration is not present | -| 2018/11/20 | 483 | Resolve a client subscription leak by unsubscribing on context cancellation | -| 2018/11/15 | | When provisioning is compiled in - support self updating using `go-updater` (provisioning-agent#53) | -| 2018/11/14 | 476 | Allow the SSL cache to always be written via `plugin.security.always_overwrite_cache` | -| 2018/11/02 | 473 | Support running Choria Server in a namespace on Enterprise Linux via a COMMAND_PREFIX in the init script | -| 2018/10/24 | 467 | Support writing server status regularly | -| 2018/10/27 | 470 | Switch to `github.com/gofrs/uuid` for UUID generation | -| 2018/10/18 | | Release 0.7.0 | -| 2018/10/02 | 462 | Allow custom packages to supply their own sysv init start order | -| 2018/09/18 | 458 | Update network broker to 1.1.0 which includes `gnatsd` 1.3.0 | -| 2018/09/17 | 456 | Provisioner Target plugins now have a context in their calls so they can do internal retries | -| 2018/09/15 | 447 | Create a single plugin interface that supports many types of plugin | -| 2018/09/11 | 444 | Set ulimits for the broker appropriately for 50 000 connections | -| 2018/09/02 | 430 | Allow agents to publish lifecycle events | -| 2018/08/31 | 428 | Add a CLI tool to view provisioning broker decisions - `tool provisioner` | -| 2018/08/29 | 426 | Correctly compiled servers will enter provisioning mode when the configuration file is missing entirely | -| 2018/08/27 | | Release 0.6.0 | -| 2018/08/26 | | Update provisioning agent dependency, allows `restart` when not in provisioning mode if a token is set | -| 2018/08/26 | 422 | publish a shutdown lifecycle event on clean shutdowns | -| 2018/08/25 | 419 | Add `tool event`, `tool sub` and `tool pub` commands to the CLI | -| 2018/08/24 | 416 | Publish a startup lifecycle event on startup | -| 2018/08/22 | 411 | Expose the version to Prometheus as `choria_build_info` | -| 2018/08/22 | 412 | Attempt to find the FQDN via DNS lookups before calling Puppet when the hostname is incomplete | -| 2018/08/16 | 408 | Add a plugin to assist with resolving the provisioning mode target brokers | -| 2018/08/10 | 402 | Ensure provisioning mode is active only for the server and not client invocations | -| 2018/08/09 | | Release 0.5.1 | -| 2018/08/09 | 403 | Ensure insecure provisioning mode works on non puppet nodes | -| 2018/08/03 | 398 | Support an auth token during provisioning | -| 2018/08/02 | 394 | Support a fact source during provisioning mode | -| 2018/08/02 | 394 | Fix registration handling when in provisioning mode | -| 2018/07/31 | 390 | Avoid leaking metrics in long running clients that make many new client instances | -| 2018/07/20 | | Release 0.5.0 | -| 2018/07/13 | 382 | Improve mcollective compatibility by supporting shallow merges of multiple fact files | -| 2018/07/12 | 379 | Increase the NATS Stream Adapter work channel size to function on large networks | -| 2018/07/12 | 377 | When adapting Choria messages to NATS Streams include the Choria RequestID | -| 2018/07/12 | 375 | Ensure all loggers are configured with the correct level and format | -| 2018/07/11 | | Disable full JSON schema validation by default due to performance concerns (go-protocol#23) | -| 2018/07/11 | | Update `gnatsd` to `1.2.0` to improve stability at >30k nodes when clustered (go-network-broker#6) | -| 2018/07/11 | 373 | Support Ubuntu 18.04 | -| 2018/07/11 | 361 | When embedding the Choria Server initial startup errors can now be detected and handled | -| 2018/07/11 | 362 | When embedding the Choria Server one can now prevent certain agents from loading | -| 2018/07/11 | 366 | Consult `/etc/choria/client.cfg` and `~/.choria` in addition to mcollective locations | -| 2018/07/03 | 359 | Resolve a go routine leak when using the connector in a long running client | -| 2018/06/26 | 353 | Handle connection errors in NATS Streaming brokers in the Adapters, require NATS Streaming >= `0.10.0` | -| 2018/06/18 | 346 | Add a high performance, filtering capable basic network validation CLI `choria ping` | -| 2018/06/15 | 343 | Resolve the merging of identity & certname concepts that erroneously happened during the security refacor | -| 2018/06/14 | 341 | Ensure non root users - like clients - get a username based certname not FQDN one | -| 2018/06/07 | 336 | Fix the setting that allows disabling broker order randomization | -| 2018/06/06 | 333 | Randomize broker connections by default | -| 2018/06/06 | 331 | Add a short grace period to clock checks to allow for real world realities wrt synced clocks | -| 2018/05/31 | | Release 0.4.0 | -| 2018/05/29 | 320 | Make the enroll process more robust in the face of interruptions | -| 2018/05/23 | 308 | Fix running `choria buildinfo` | -| 2018/05/23 | 309 | Create `go-security` package with the Choria security providers for reuse in other eco system projects | -| 2018/05/22 | 306 | Fix registration feature when running in insecure mode | -| 2018/05/18 | 302 | Include a hint when the source data for registration changed | -| 2018/05/16 | | Release 0.3.0 | -| 2018/05/08 | 287 | Create the concept of a Security Provider and create providers for Puppet and File, add `choria enroll` | -| 2018/05/03 | 284 | On systemd based distributions ensure that upgrading choria with Puppet is more reliable | -| 2018/04/25 | 271 | Log rotation for `choria-*.log` which covers audit, ruby and more | -| 2018/04/25 | 267 | Ensure that the ruby shim based agents have access to the correct request time | -| 2018/04/24 | | Release 0.2.0 | -| 2018/04/23 | 243 | Create a compatibility framework for MCollective Agents written in Ruby | -| 2018/04/23 | 252 | Avoid logrotate errors when the package was installed but choria never ran | -| 2018/04/09 | 240 | When facter is available use it to determine the FQDN to improve default behavior on debian like systems | -| 2018/04/09 | 236 | Allow `nats://host:port` and `host:port` to be used when referencing brokers | -| 2018/04/09 | 235 | Detect empty initial server list when starting federation brokers | -| 2018/03/29 | 229 | Surface more NATS internal debug logs as notice and error | -| 2018/03/29 | 228 | Increase TLS timeouts to 2 seconds to improve functioning over latency and heavily loaded servers | -| 2018/03/26 | 199 | Do not use HTTP to fetch internal NATS stats | -| 2018/03/26 | 220 | Update gnats and go-nats to latest versions | -| 2018/03/26 | 222 | Allow the network broker write deadline to be configured | -| 2018/03/23 | 218 | Avoid rotating empty log files and ensure the newest log is the one being written too | -| 2018/03/21 | | Release 0.1.0 | -| 2018/03/08 | 208 | Improve compatibility with MCollective Choria by not base64 encoding payloads | -| 2018/03/08 | 207 | Ensure the filter is valid when creating `direct_request` messages | -| 2018/03/07 | 204 | Support writing a thread dump to the OS temp dir on receiving SIGQUIT | -| 2018/03/07 | 202 | Do not rely purely on `PATH` to find `puppet`, look in some standard paths as well | -| 2018/03/06 | | Release 0.0.11 | -| 2018/03/06 | 198 | Reuse http.Transport used to fetch gnatsd statistics to avoid a leak on recent go+gnatsd combination | -| 2018/03/05 | | Release 0.0.10 | -| 2018/03/05 | 194 | Revert `gnatsd` to `1.0.4`, upgrade Golang to `1.10` | -| 2018/03/05 | | Release 0.0.9 | -| 2018/03/05 | 190 | Downgrade to Go 1.9.2 to avoid run away go routines | -| 2018/03/05 | | Release 0.0.8 | -| 2018/03/05 | 187 | Create a schema for the NATS Stream Adapter and publish it in the messages | -| 2018/03/05 | 174 | Report the `mtime` of the file in the file content registration plugin, support compressing the data | -| 2018/03/02 | 183 | Update Go to `1.10` | -| 2018/03/01 | 180 | Show the Go version used to compile the binary in `buildinfo` | -| 2018/03/01 | 173 | Record and expose the total number of messages received by the `server` | -| 2018/03/01 | 176 | Intercept various `gnatsd` debug log messages and elevate them to notice and error | -| 2018/03/01 | 175 | Update embedded `gnatsd` to `1.0.6` | -| 2018/02/19 | 171 | Show embedded `gnatsd` version in `buildinfo` | -| 2018/02/19 | | Release 0.0.7 | -| 2018/02/19 | 165 | Discard NATS messages when the work buffer is full in the NATS Streaming adapter | -| 2018/02/19 | 166 | Remove unwanted debug output | -| 2018/02/16 | 167 | Clarify the Choria flavor reported by choria_util#info | -| 2018/02/01 | 163 | Avoid large data storms after a reconnect cycle by limiting the publish buffer | -| 2018/02/01 | 151 | Add xenial and stretch packages | -| 2018/01/22 | 152 | Support automagic validation of structs received over the network, support shellsafe for now | -| 2018/01/20 | 150 | Release 0.0.6 | -| 2018/01/20 | 58 | A mostly compatible `rpcutil` agent was added | -| 2018/01/20 | 148 | The TTL of incoming request messages are checked | -| 2018/01/20 | 146 | Stats about the server and message life cycle are recorded | -| 2018/01/19 | 133 | A timeout context is supplied to actions when they get executed | -| 2018/01/16 | 134 | Use new packaging infrastructure and move building to a circleci pipeline | -| 2018/01/12 | 131 | Additional agents can now be added into the binary at compile time | -| 2018/01/12 | 125 | All files in additional dot config dirs are now parsed | -| 2018/01/12 | 128 | Add additional fields related to the RPC request to mcorpc.Request | -| 2018/01/10 | 120 | The concept of a provisioning mode was added along with a agent to assist automated provisioning | -| 2018/01/09 | 60 | Auditing was added for mcorpc agents | -| 2018/01/09 | 69 | The protocol package has been moved to `choria-io/go-protocol` | -| 2018/01/08 | 118 | Create a helper to parse mcorpc requests into a standard structure | -| 2018/01/05 | 114 | Ensure the logfile name matches the package name | -| 2018/01/06 | | Release 0.0.5 | -| 2018/01/05 | 110 | Correctly detect startup failures in the el6 init script | -| 2018/01/04 | 111 | Treat the defaults file as config in the el6 rpm | -| 2017/12/25 | 108 | Improve logrotation - avoid appending to a rotated file | -| 2017/12/21 | 106 | Make the max connections a build parameter and default it to 50 000 | -| 2017/12/20 | 101 | Add a random backoff to initial connection in adapters and the connector | -| 2017/12/20 | 102 | Expose connector details to prometheus | -| 2017/12/13 | | Release 0.0.4 | -| 2017/12/14 | 97 | Stats about the internals of the protocol are exposed | -| 2017/12/14 | 80 | When doing SRV lookups employ a cache to speed things up | -| 2017/12/14 | 92 | When shutting down daemons on rhel6 wait for them to exit and then KILL them after 5 seconds | -| 2017/12/14 | 91 | Avoid race condition while determining if the network broker started | -| 2017/12/14 | 90 | Emit build info on `/choria/` | -| 2017/12/13 | | Release 0.0.3 | -| 2017/12/12 | 81 | Export metrics `/choria/prometheus` when enabled | -| 2017/12/10 | 73 | Federation brokers now correctly subscribe to the configured names | -| 2017/12/10 | 71 | Fix TLS network cluster | -| 2017/12/10 | | Release 0.0.2 | -| 2017/12/10 | 67 | Distribute sample `broker.conf` and `server.conf` | -| 2017/12/10 | 65 | When running as root do not call `puppet apply` 100s of times | -| 2017/12/10 | 64 | Ensure the broker exits on interrupt when the NATS based broker is running | -| 2017/12/09 | 59 | Add a compatible `choria_util` agent | -| 2017/12/09 | 57 | Create basic MCollective SimpleRPC compatible agents written in Go and compiled in | -| 2017/12/08 | 53 | Adds the `buildinfo` subcommand | -| 2017/12/08 | 52 | Improve cross compile compatibility by using `os.Getuid()` instead of `user.Current()` | -| 2017/12/08 | | Release 0.0.1 | +| Date | Issue | Description | +|------------|-------|--------------------------------------------------------------------------------------------------------------------| +| 2022/06/21 | 1735 | Support Ubuntu 22.04 LTS | +| 2022/06/21 | 1735 | Debian packages will not have the distro as part of the package name to easy mirroring | +| 2022/06/15 | 1738 | KV autonomous agent watchers will now template parse the names of keys | +| 2022/06/12 | 1725 | Exec autonomous agent watchers can now perform a fast - subject to splay - initial gather | +| 2022/06/12 | 1726 | Remove the deprecated Anonymous TLS server mode | +| 2022/06/12 | 1722 | Prevent client permissions from being set on servers, not triggered in choria, was possible by using the libraries | +| 2022/06/11 | 1720 | Provisioning JWT can have user provided extensions to convey additional non-choria information to provisioner | +| 2022/06/09 | 1712 | Various UX improvements to the help output | +| 2022/06/08 | 1713 | Allow access to the broker system account via unverified TLS given a JWT with the system permission | +| 2022/06/06 | 1703 | Adds `kv create` and `kv update` | +| 2022/06/06 | 1708 | Move to `fisk` CLI package, improve default help output verbosity | +| 2022/06/02 | 1704 | Support EL9 | +| 2022/05/26 | 1697 | Support subject mappings witin the Choria Brokers for partitioning | +| 2022/05/10 | 1665 | Introduce a new kind of Application by adopting the `appbuilder` project and extending it for Choria | +| 2022/05/09 | 1663 | Adds a `semver` reply filter function | +| 2022/05/28 | 1659 | Use core Go list of supported ciphersuites | +| 2022/05/20 | 1654 | Prevent use of JWT tokens with incorrect caller ID | +| 2022/05/14 | 1649 | Fix typo in generated code | +| 2022/05/12 | 1647 | Expand the `inventory` registration payload to include version, hash and auto agent information | +| 2022/05/11 | 1645 | Work around breaking change in nats.go related to KV access | +| 2022/05/08 | 1643 | Allow slow TTLs for leader elections | +| 2022/05/06 | 1640 | Improve reliability of clean shutdowns | +| 2022/04/05 | 1445 | Reject agents without a name or too small timeout | +| 2022/04/05 | 1636 | Support skipping system stream management | +| 2022/04/05 | 1591 | Use correct credentials when running `choria broker server check jetstream` | +| 2022/04/05 | 1633 | Remove the Provisioner agent `release_update` action | +| 2022/03/31 | 1630 | UX improvements for `choria kv` | +| 2022/03/30 | 1628 | Use correct credentials when running `choria broker server check kv` | +| 2022/03/29 | 1625 | When using the embedded `nats` cli allow a custom Choria configuration to be set | +| 2022/03/22 | 1619 | Adds full end to end integration testing | +| 2022/03/21 | | Improve logging during initial connection establishment | +| 2022/03/17 | 1615 | Remove obsolete operating system distributions | +| 2022/03/16 | | Switch to go 1.18 | +| 2022/03/10 | | Redact some passwords when logging | +| 2022/03/01 | 1608 | Improve hostname validation checks in flatfile discovery | +| 2022/02/25 | | Release 0.25.1 | +| 2022/02/25 | 1604 | Fix startup on windows | +| 2022/02/23 | | Release 0.25.0 | +| 2022/02/07 | 1590 | Support checking server JWT token validity | +| 2022/01/18 | 1405 | Add 64 bit ARM packages | +| 2022/01/18 | 1576 | Allow custom builders to set the server service to auto start after install | +| 2022/01/17 | 1573 | Compatibility fix for 32 bit builds | +| 2022/01/17 | 1571 | Improve starting Choria Streams between reboots | +| 2022/01/13 | 1568 | Improve `tool provision` so debugging custom provisioning targets is more reliable | +| 2022/01/12 | 1561 | Correctly handle missing server configuration files when a custom provisioner is set | +| 2022/01/10 | 1555 | Ensure filters work with async requests in the `choria req` command | +| 2021/12/17 | 1526 | Support trace logging of the embedded nats CLI | +| 2021/12/16 | 1549 | Expand the `jwt` command to create other types of JWT and move to `choria jwt` | +| 2021/12/16 | 1547 | Unify the `kv del` and `kv rm` commands | +| 2021/12/07 | 1543 | Remove NATS Streaming Server support | +| 2021/12/07 | 1541 | Improve `choria tool governor run` when the broker is down | +| 2021/11/29 | 1522 | Specifically use `choria broker run` to start the broker | +| 2021/11/24 | 1526 | Import the `nats` CLI tool into Choria under `choria broker` | +| 2021/11/19 | 1522 | Support enabling connection `nonce` feature allowing per connection private key validation | +| 2021/11/25 | 1522 | Extend provisioning agent to on board ed25519 seeds and process signed JWTs from the provisioner | +| 2021/11/12 | 1509 | Allow JWT clients to have permissions that can restrict access to Choria Streams related features | +| 2021/11/12 | 1509 | Extract all jwt handling code in all packages into a new `tokens` package | +| 2021/11/09 | 1507 | Allow non TLS connections from both servers and clients in combination of AAA and Provisioner using JWTs | +| 2021/10/28 | 1502 | Move to NATS official KV implementation, formalize Leader Election in Choria Broker | +| 2021/10/28 | 1499 | Avoid leaving some tempoary directories around in the archive watcher | +| 2021/10/28 | 1495 | Allow succesfull KV operations that do not change data to transition autonomous agents | +| 2021/10/28 | 1494 | Relax identity validation in flatfile discovery to avoid rejecting some valid hostnames as identities | +| 2021/10/27 | 1491 | Add `--senders` to `choria req` that shows only those replying identities | +| 2021/10/26 | 1487 | Support for latest Cert Manager APIs | +| 2021/10/25 | 1482 | Support tallying governor events | +| 2021/10/25 | 1483 | Allow custom loggers to be passed to Choria and avoid changing settings of the default logrus logger | +| 2021/10/25 | 1480 | Support tallying wildcard components rather than just a single component | +| 2021/10/15 | | Add SPDX License Identifier and Copyright to source files | +| 2021/10/15 | 1475 | Support `stdout` and `stderr` as logging destinations in addition to `discard` and a file name | +| 2021/10/14 | 1472 | Show additional `mco choria show_config` style information in `choria tool config` | +| 2021/10/14 | | Change docker base to AlmaLinux | +| 2021/10/12 | 1241 | Refactor DDL resolution, support querying Choria Registry for unknown DDLs | +| 2021/10/07 | 1462 | Adds a new `machines` watcher to manage Choria Autonomous Agents, not enabled by default | +| 2021/10/06 | 1459 | Adds a new `archive` watcher to manage `tgz` files, not enabled by default | +| 2021/10/05 | 1454 | Support asserting provisioning state in the health check plugin | +| 2021/10/05 | 1455 | Ignore machines with `-temp` name suffix and the `tmp` directory | +| 2021/09/27 | 1446 | Compatibility fix for latest NATS Server code regarding dynamic limits | +| 2021/09/22 | 1438 | Allow `choria scout watch` to show only state changes | +| 2021/09/22 | 1438 | Add a CLI API for managing KV buckets | +| 2021/09/20 | | Release 0.24.0 | +| 2021/09/19 | 1428 | Adds a helper to assist in creation of Governors from automation tools | +| 2021/09/17 | 1426 | Do not attempt to also load embedded Autonomous Agents from disk | +| 2021/09/14 | 1418 | Allow provisioning of Action Policies and Open Policy Agent Policies via Choria Provisioner | +| 2021/09/13 | 1415 | Support listing known Governors | +| 2021/09/13 | 1413 | Do not create unconfigured Governors when viewing a non existing Governor | +| 2021/09/13 | 1411 | Add `--force` / `-f` to `choria governor add` | +| 2021/09/09 | 1407 | Create the `plugin.choria.machine.store` directory if it does not exist | +| 2021/09/06 | 140 | Do not update file mtime on skipped checks in the File watcher | +| 2021/09/06 | 1401 | Add a `splay` option to the Timer Watcher | +| 2021/09/03 | 1397 | Handle JSON data in data better in Autonomous Agent data layer allowing for nested lookups | +| 2021/09/02 | 1388 | Various refactors of Debian packages to behave more consistently with RedHat startup/restart flows | +| 2021/09/02 | 1393 | Fix logging of embedded NATS Server to Choria logs | +| 2021/09/01 | 1386 | Introduce a faster broadcast discovery timeout using sliding windows, behind a opt-in setting | +| 2021/08/31 | 1384 | Allow Autonomous Agents to be compiled into the server as plugins | +| 2021/08/31 | 1377 | Initial support for performing AAA Server signing requests via Choria Services rather than HTTPS | +| 2021/08/27 | 1377 | Internal refactoring to improve cross/cyclic package import problems | +| 2021/08/24 | | Release 0.23.0 | +| 2021/08/24 | | Support Debian 11 | +| 2021/08/23 | 1367 | Enable the `choria_provision` agent when provisioning is supported | +| 2021/08/18 | 1359 | Support sorting `choria req` output by identity using `--sort` | +| 2021/08/18 | 1358 | Ensure SSL Cache is created if needed during provisioning | +| 2021/08/18 | 1357 | Correctly enter provisioning with a configuration file and without a Puppet installation | +| 2021/08/17 | 1355 | Support receiving private keys from the provisioner, protected using Curve 25519 ECDH shared secrets | +| 2021/08/16 | 1353 | Ensure no responses list and unexpected responses list always prints, capped to 200 nodes | +| 2021/08/11 | 1344 | Fix setting workers and expr filter on generated clients | +| 2021/08/10 | 1342 | Include the Public Key in the CSR reply, add data type hints to the provisioner DDL and update client | +| 2021/08/09 | 1331 | Include the time a RPC Reply was generated in the reply | +| 2021/08/09 | 1337 | Generated clients can accept a Choria Framework, avoiding config loading etc | +| 2021/08/09 | 1335 | Support entering provisioning mode when the supplied `server.conf` does not exist | +| 2021/08/09 | 1333 | Disable RPC Auth during provisioning mode | +| 2021/08/04 | 1326 | Rename the `jetstream` adapter to `choria_streams` | +| 2021/08/03 | 1324 | Allow compiled-in Go agents to access the Submission system | +| 2021/08/03 | 1321 | Improve the broker shutdown process to cleanly shut down Choria Streams | +| 2021/08/03 | 1319 | Use correct Choria reply subjects when interacting with the Streams API | +| 2021/08/02 | 1316 | Extend the RPC Reply structure to include what action produced the data | +| 2021/08/02 | 1314 | Support Asynchronous Request mode in generated Go clients | +| 2021/07/25 | 1310 | Export certificate expiry time in Choria status files, support checking from CLI and Scout | +| 2021/07/19 | 1291 | Support templates in Exec Watcher `cmd`, `env` and `governor` | +| 2021/07/12 | 1291 | Expose `kv` data to the Autonomous Agent data system | +| 2021/07/12 | 1291 | Add a Choria Key-Value Store accessible using `choria kv` and a new `kv` Autonomous Agent Watcher | +| 2021/07/12 | 1291 | Allow Exec Watchers to access node facts | +| 2021/07/12 | 1291 | Add a Autonomous Agent level data store, allow Exec Watchers to gather and store data in a Auto Agent | +| 2021/07/09 | 1289 | Additional Prometheus statistics for Choria Streams | +| 2021/07/05 | 1276 | Support Governors in the Exec Autonomous Agent watcher | +| 2021/07/02 | 1276 | Introduce `choria governor` for network wide concurrency control | +| 2021/06/30 | 1277 | Support PKCS8 containers | +| 2021/06/23 | 1273 | Introduce Choria Submission to allow messages to be placed into Streams via Choria Server | +| 2021/06/21 | 1272 | Use default client-like resolution to find brokers in the JetStream adapter when no urls are given | +| 2021/06/09 | 1042 | Rate limit fast transitions in autonomous agents | +| 2021/06/09 | 1264 | Allow a random sleep at the start of schedules for the Schedule watcher | +| 2021/06/06 | 1259 | Allow the default client suffix to be set at compile time (eg. rip.mcollective user id) | +| 2021/06/06 | 1258 | Allow the default collective to be set at compile time | +| 2021/06/03 | 1256 | Fail when a client cannot determine its identity | +| 2021/05/11 | 1250 | Improve sorting of `choria inventory` columns | +| 2021/04/28 | 1246 | Adds a `choria login` command that supports delegating to `choria-login` in `PATH` | +| 2021/04/27 | 1241 | Initial implementation of the `choria_registry` service agent | +| 2021/04/27 | 1243 | Support Websockets for connectivity from Leafnodes and Choria Server to Choria Broker, also Go clients | +| 2021/04/23 | 1234 | Allow the Choria Server to run in an Services-Only mode | +| 2021/04/23 | 1238 | Improve some core DDLs with better type hints | +| 2021/04/22 | | Release 0.22.0 | +| 2021/04/22 | 1234 | Initial support for Service Agents | +| 2021/04/21 | 1232 | Autonomous Agent transitions now support a human friendly description | +| 2021/04/19 | 1227 | Import the provisioning agent into this code base since it's now always compiled in | +| 2021/04/16 | 1222 | Create `choria plugin doc` and move `tool generate` to `plugin generate` | +| 2021/04/15 | 1220 | Handle filter expressions that are not obviously boolean better | +| 2021/04/13 | 1216 | Improve startup logs when skipping agents in specific providers | +| 2021/04/08 | 1213 | Increase leafnode authentication timeout | +| 2021/04/08 | 1211 | Improve randomness of limited targets | +| 2021/04/07 | 1207 | Support wider duration specification by supporting week, month, year etc | +| 2021/04/05 | 1204 | Enable new Go based action policy by default | +| 2021/04/01 | 1201 | Support the old `boolean_summary` aggregator and generic output name remapping in summary aggregator | +| 2021/03/30 | 1195 | Default to the `choria` account for leafnodes | +| 2021/03/30 | 1197 | Improve consistency of time durations in ping output | +| 2021/03/30 | 1195 | Fix ordering of leafnode and acounts setup | +| 2021/03/29 | 1193 | JetStream Adapter can publish to wildcard streams with per identity subjects | +| 2021/03/29 | 1189 | Use correct target for registration messages | +| 2021/03/29 | | Release 0.21.0 | +| 2021/03/26 | 1189 | Add a new registration plugin that sends the running inventory rather than file contents | +| 2021/03/25 | 1187 | Support enabling listening `pprof` port | +| 2021/03/23 | 1185 | Fix validation for integers in the DDLs | +| 2021/03/23 | 1183 | Fail `choria facts` when no nodes match supplied filters | +| 2021/03/19 | 1180 | Restore the data plugin report in rpcutil#inventory | +| 2021/03/19 | 1178 | Do not send the filter verbatim in `choria req` | +| 2021/03/18 | 1175 | Add a client specific `TLSConfig()`, improve adapters and federation support for legacy certs | +| 2021/03/18 | 1173 | Create a `choria` account in NATS, move all connections there, enable `system` account | +| 2021/03/17 | 1170 | Correctly calculate advertise URL | +| 2021/03/10 | 1165 | Improve support for Clustered JetStream | +| 2021/03/10 | 1161 | Add a `machine_state` data plugin | +| 2021/03/05 | 1156 | Support retrieving a single choria autonomous agent state using choria_util | +| 2021/03/02 | 1154 | Support building ppc64le EL7 and EL8 RPMs | +| 2021/03/02 | 1152 | Improve ping response calculations in federated networks | +| 2021/03/01 | 1150 | Avoid unnecessary warning level logs | +| 2021/02/23 | | Drop support for Enterprise Linux 6 due to go1.16 | +| 2021/02/22 | 1147 | Correctly detect stdin discovery | +| 2021/02/17 | 1145 | Improve stability of `choria scout watch` | +| 2021/02/03 | | Release 0.20.2 | +| 2021/02/03 | 1140 | Ensure logging doesn't happen at warn level | +| 2021/02/03 | | Release 0.20.1 | +| 2021/02/03 | 1140 | Ensure that only client/server connections use no SAN TLS work around, not brokers | +| 2021/02/03 | | Release 0.20.0 | +| 2021/02/02 | 1136 | Improve progress bars on small screens | +| 2021/02/02 | | Sort classes tags in discovery command and elsewhere | +| 2021/02/01 | 1074 | Initial support for Data Providers, add `choria`, `scout`, `config_item` providers | +| 2021/01/29 | 1123 | Perform identity-only discovery optimization in `broadcast` and `puppetdb` discovery methods | +| 2021/01/29 | 1121 | Add a `--silent` flag to `choria discover` to improve script integration | +| 2021/01/28 | 1060 | Support go 1.15 by putting in work around to support Puppet SAN free TLS certificates | +| 2021/01/28 | | Add a bash completion script in `choria completion` in addition to current ZSH support | +| 2021/01/24 | 1113 | Adds a new `inventory` discovery method | +| 2021/01/23 | 1110 | Improve SRV handling when trying to find PuppetDB host | +| 2021/01/23 | 1098 | Improve `choria tool config` to show config files and active settings | +| 2021/01/22 | 1102 | Ensure we discover `rpcutil` in the `discover` command, improves PuppetDB integration | +| 2021/01/20 | 751 | Add project level Choria configuration | +| 2021/01/21 | 1098 | Allow options to be passed to discovery methods using `--discovery-option` | +| 2021/01/18 | 1081 | Support flatfile discovery from json, yaml, stdin and improve generated clients | +| 2021/01/16 | 1092 | Add the `external` discovery method | +| 2021/01/18 | 1072 | Performance improvements for expr expression handling | +| 2021/01/14 | 281 | Improve identity handling when running on windows, non root and other situations | +| 2021/01/13 | 1089 | Support request chaining in the req command | +| 2021/01/13 | | Release 0.19.0 | +| 2020/01/12 | 1086 | Create a `choria facts` command | +| 2020/01/12 | 1084 | Support full GJSON Path Syntax in rpcutil#get_fact, fix a crash on map data in aggregators | +| 2020/01/10 | 1081 | Standardise filter and discovery CLI options | +| 2020/01/10 | 1074 | Support compound filters using `expr` | +| 2020/01/09 | 1076 | Improve support for HTTPS servers discovered by SRV records by stripping trailing `.` in names | +| 2021/01/09 | 1074 | Basic support for Data plugin DDLs | +| 2021/01/09 | 1072 | Add `expr` based client-side filtering of RPC results | +| 2021/01/08 | 1068 | Improve support for the `color` option and disable it by default on windows | +| 2021/01/07 | 1064 | Calculate `choria ping` times from the moment before publish and report overhead | +| 2021/01/07 | 1062 | Support parsing nagios format Perfdata as output format for the metric watcher | +| 2020/12/29 | 1055 | Report the certificate fingerprint when doing `choria enroll` for Puppet CA | +| 2020/12/28 | 1051 | Add `choria discover` | +| 2020/12/27 | 1049 | Generated clients has a PuppetDB name source | +| 2020/12/27 | 1049 | rpc client will now honor the DefaultDiscoveryMethod setting for all clients | +| 2020/12/27 | 1049 | Add `--dm` to the `choria req` command to switch discovery method | +| 2020/12/27 | 1049 | Add a PuppetDB discovery method | +| 2020/12/27 | 1047 | Create generated clients for `rpcutil`, `scout` and `choria_util` in `go-choria/client` | +| 2020/12/26 | 1045 | Add `choria inventory` | +| 2020/12/16 | 1017 | Avoid listening and registering with mDNS when Homekit is not used | +| 2020/12/12 | 1038 | Add a `choria_status` Nagios builtin allowing Choria to health checks from Scout | +| 2020/12/09 | 1035 | Ignore case when matching against configuration management classes | +| 2020/12/09 | 1035 | Ignore case when doing fact matching | +| 2020/12/08 | 1030 | Allow Autonomous Agent Watchers to be plugins, convert all core ones to plugins | +| 2020/12/03 | | Major code cleanups and and test coverage for the Autonomous Agents | +| 2020/11/29 | 1009 | Perform DNS lookups on every initial reconnect retry | +| 2020/11/28 | 1007 | Add a `metrics` Autonomous Agent watcher that can fetch and publish metrics | +| 2020/11/27 | 1006 | Use new JetStream features to improve retrieval of event history | +| 2020/11/25 | | Release 0.18.0 | +| 2020/10/21 | 999 | Add a timer watcher that changes state after a time expires | +| 2020/10/21 | 999 | Support creating Apple Homekit buttons in Autonomous Agents | +| 2020/09/28 | | Release 0.17.0 | +| 2020/09/04 | 989 | Add a generic shell completion helper and support ZSH completion | +| 2020/08/25 | 987 | Support NATS Leafnodes to extend the Choria Broker in a TLS free way specifically usable by AAA clients | +| 2020/08/03 | 982 | Scout checks can have annotations that are published in events | +| 2020/08/03 | 920 | Add `choria scout maintenance` and `choria scout resume` commands | +| 2020/08/01 | 920 | Add a `choria scout trigger` command that triggers an immediate check and associated events | +| 2020/08/01 | 977 | Generated clients can now set a progress bar | +| 2020/07/30 | 975 | Prevent int overflow in time fields in some Scout events | +| 2020/07/26 | 920 | Add a `--table` option to `choria req` and a new formatter in generated clients | +| 2020/07/26 | 920 | Add a `choria scout status` command that can show all checks on a node | +| 2020/07/24 | 968 | Improve the history presented in Scout events | +| 2020/07/22 | 966 | Remove the concept of a site wide Gossfile | +| 2020/07/21 | 964 | Allow multiple Gossfiles and multiple Goss checks | +| 2020/07/18 | | Release 0.16.0 | +| 2020/07/18 | 960 | Add a `choria scout watch` command | +| 2020/07/17 | 957 | Restore the ability for DDLs to declare display formats for aggregate outputs | +| 2020/07/16 | 948 | Support performing `goss` validation in the `nagios` autonomous agent | +| 2020/07/15 | 842 | Avoid zombies when Ruby agents exceed their allowed run time | +| 2020/07/09 | 944 | Extract the generic result display logic from `choria req` into a reusable package | +| 2020/07/09 | 942 | Include a snapshot of recent check states in published check events | +| 2020/07/08 | 939 | Improve using the supplied logger in generated clients | +| 2020/07/08 | 938 | Add helpers to parse complex data in generated clients | +| 2020/07/08 | 937 | Generated clients perform 2 discoveries per request | +| 2020/07/07 | 935 | Release packages for Ubuntu Focal (20.04 LTS) | +| 2020/07/07 | 932 | Fix targeting a specific sub collective in the `req` command | +| 2020/07/07 | 928 | Add a new `scout` agent and Golang client | +| 2020/07/03 | 920 | Initial work on a Scout framework towards building a monitoring related distribution | +| 2020/07/01 | | Release 0.15.0 | +| 2020/06/29 | 913 | Support preparing for shutdown by closing connections and emiting shutdown events when embedded | +| 2020/06/26 | 895 | Support NATS JetStream Streaming Server in Choria Broker | +| 2020/06/24 | 907 | Support arm5 and 7 Debian packages | +| 2020/06/20 | 895 | Support Nagios compatible plugins in the new `nagios` autonomous agent watcher | +| 2020/06/16 | 893 | Server instances embedded in other software can now be shutdown using `Shutdown()` | +| 2020/06/15 | 887 | Track nodes expired by maintenance in the tally helper | +| 2020/06/13 | | Improve FQDN resolution when running in a kubernetes pod | +| 2020/06/12 | 879 | Allow the public name of the network broker to be configured | +| 2020/06/12 | 877 | Support cert-manager.io as security provider | +| 2020/06/07 | 865 | Correctly handle provisioning by SRV domain | +| 2020/06/07 | 863 | Allow provisioning brokers to have user/password authentication | +| 2020/05/14 | 860 | Perform backoffs between reconnects to the network broker | +| 2020/04/22 | 857 | Cosmetic improvements to windows packages | +| 2020/04/19 | | Release 0.14.0 | +| 2020/04/16 | 854 | Correctly report insecure builds | +| 2020/04/07 | 852 | Install `choria` binary in /usr/bin and not /usr/sbin | +| 2020/03/25 | 846 | Various improvements to generated RPC clients | +| 2020/03/24 | 844 | Export facts to external agents | +| 2020/03/22 | 801 | Expose statistics for NATS Leafnodes | +| 2020/03/16 | 840 | Improve formatting of node lists at the end of requests | +| 2020/03/11 | 687 | Support enforcing the use of filters on all RPC requests using `plugin.choria.require_client_filter` | +| 2020/03/03 | 834 | Add Debian Buster support | +| 2020/02/17 | 831 | Cache transport messages when doing batched requests to improve pkcs11 integration | +| 2020/02/13 | 827 | Ensure agent filter is added when discovering nodes | +| 2020/02/08 | 817 | Add `choria tool config` to view configuration paramters and current values | +| 2020/02/08 | 814 | Set `PATH` when calling external agents | +| 2020/02/05 | 794 | Merge `go-lifecycle` into `go-choria` | +| 2020/02/05 | 794 | Merge `go-protocol`, `go-security`, `mcorpc-agent-provider` and `go-config` into `go-choria` | +| 2020/02/05 | 794 | Merge `go-confkey`, `go-validator`, `go-puppet`, `go-network-broker` and `go-srvcache` into `go-choria` | +| 2020/01/30 | | Update to CloudEvents 1.0.0 | +| 2020/01/23 | 774 | Support logging to Windows Event log | +| 2020/01/23 | 772 | Support running as a Windows service | +| 2020/01/17 | 769 | Add basic Windows pacakges | +| 2020/01/16 | | Support use selectable SSL Ciphers using `plugin.security.cipher_suites` and `plugin.security.ecc_curves` | +| 2020/01/12 | | Release 0.13.1 | +| 2019/12/25 | 758 | Extract RPC reply rendering to the mcorpc package-agent-provider | +| 2019/12/23 | 754 | Extract parts of the filter parsing logic to the `protocol` package | +| 2019/12/15 | 746 | Support remote request signers such as `aaasvc` | +| 2019/12/09 | 743 | Support generating Go clients using `choria tool generate client` | +| 2019/12/05 | | Release 0.13.0 | +| 2019/12/05 | 737 | Add a tech preview JetStream adapter | +| 2019/12/04 | 731 | Switch to CloudEvents v1.0 format for lifecycle events and machine events | +| 2019/12/02 | 709 | Build RHEL 8 packages nightly and on release | +| 2019/12/02 | 548 | Improve startup when embedding the server in other programs | +| 2019/11/29 | 724 | Improve stability on a NATS network with Gateways | +| 2019/11/28 | 720 | Improve the calculations of total request time in the `choria req` command | +| 2019/11/21 | 710 | Support Synadia NGS as a NATS server for Choria | +| 2019/10/26 | 705 | Add `choria tool jwt` to create provisioning tokens | +| 2019/10/25 | 705 | Allow a JWT file to configure provisioning behavior and enable provisioning in the FOSS binary | +| 2019/10/14 | 703 | Allow `choria req` output to be saved to a file | +| 2019/10/01 | 700 | Force convert a DDL from JSON on the CLI without prompts | +| 2019/09/20 | | Release 0.12.1 | +| 2019/09/19 | | Support Authorization and External Agents via latest MCORPC provider | +| 2019/09/16 | 681 | Allow agents to associate with specific agent providers using the `provider` field in metadata | +| 2019/09/12 | 678 | Support generating Ruby and JSON DDL files using `choria tool generate ddl` | +| 2019/09/09 | | Release 0.12.0 | +| 2019/09/09 | | Broker based on NATS 2.0 via `go-network-broker` version `1.3.1` | +| 2019/09/07 | 670 | Improve the output from `choria ping --graph` | +| 2019/09/06 | 664 | Add a pkcs11 security provider | +| 2019/09/04 | 663 | Add a `choria req` tool to eventually replace `mco rpc` | +| 2019/08/09 | 652 | Write init scripts to the correct location on RHEL | +| 2019/07/24 | 642 | Show dependencies compiled into the binary in `choria buildinfo` | +| 2019/07/15 | 632 | Decrease memory use in adapters by lowering the work queue length | +| 2019/06/27 | 621 | Choria Provisioner is now a proper plugin | +| 2019/06/27 | 623 | Support `agents.ShouldActivate()` checks when loading agents | +| 2019/06/26 | 617 | Support NATS 2.0 credentials and user/password | +| 2019/06/26 | 617 | Fix `choria ping` | +| 2019/06/12 | | Release 0.11.1 | +| 2019/04/20 | | Support email SANs in client certificates via `go-security` `0.4.2` | +| 2019/06/11 | 609 | Verify that only known transitions and states are mentioned in the machine specification | +| 2019/06/11 | 607 | Ensure the machine directory is in the `PATH` | +| 2019/05/30 | 605 | Fix `environment` handling for exec watchers | +| 2019/05/29 | 602 | Ensure machines are runable on the CLI | +| 2019/05/29 | 599 | Support run-once exec watchers by setting `interval=0` | +| 2019/05/29 | 597 | Do not manage Autonomous Agents in provisioning mode | +| 2019/05/28 | 591 | Add a `scheduler` watcher for Autonomous Agents | +| 2019/05/27 | | Release 0.11.0 | +| 2019/05/23 | | Log discovery requests in a similar manner to RPC requests via `mcorpc-agent-provider` `0.4.0` | +| 2019/05/23 | | Fix puppet provider support for `SecurityAlwaysOverwriteCache` via `go-security` `0.4.0` | +| 2019/05/23 | | Improve excessive logging when privilged certificates are used via `go-security` `0.4.0` | +| 2019/05/23 | | Only write certificates on change if `SecurityAlwaysOverwriteCache` is set via `go-security` `0.4.0` | +| 2019/05/22 | 554 | Retry SRV lookups on reconnect attempts | +| 2019/05/27 | 563 | Support Choria Autonomous Agents | +| 2019/03/21 | 557 | Force puppet environment to `production` to avoid failures about missing environment directories | +| 2019/03/19 | 557 | Improve error messages logged when invoking `puppet` to retrieve setting values fail | +| 2019/03/15 | 555 | Add a basic utility to assist with creating deep monitoring `choria tool status` | +| 2019/03/04 | | Release 0.10.1 | +| 2019/02/25 | | Resolve broker instability on large networks via `go-network-broker#19` | +| 2019/01/23 | | Release 0.10.0 | +| 2019/01/17 | | Various fixes to privileged security certificate handling via `go-security` release `0.3.0` | +| 2019/01/17 | | Allow limiting clients to sets of IPs via `go-network-broker#12` | +| 2019/01/09 | 534 | Ensure the server status file is world readable | +| 2019/01/07 | 532 | Force exit even when worker routines are not done after `soft_shutdown_timeout`, default 2 seconds | +| 2019/01/05 | 530 | Further fixes to avoid concurrent hash access panics for golang client code | +| 2019/01/03 | 524 | Include the server version when creating life cycle events | +| 2018/12/27 | 521 | Improve `alive` event spread by sleeping for up to a hour for initial publish | +| 2018/12/27 | 519 | Expose `security.Validate` to users of the go framework | +| 2018/12/27 | | Release 0.9.0 | +| 2018/12/26 | | Fix reboot splay time when doing self updates via `provisioning-agent#67` | +| 2018/12/26 | | Increase `choria_util` agent timeout to facilitate slow facter runs via `mcorpc-agent-provider#36` | +| 2018/12/26 | 515 | Cache facter lookups | +| 2018/12/21 | 510 | Publish new `alive` life cycle events every hour | +| 2018/12/19 | | support `~/.choriarc` and `/etc/choria/client.conf` for client configs | +| 2018/12/19 | | Report protocol security and connector TLS in `choria_util#info` via `mcorpc-agent-provider#33` | +| 2018/12/19 | 501 | Allow default configuration values to be mutated at startup using a plugin | +| 2018/12/07 | 495 | Allow server status to be written during provision mode | +| 2018/11/30 | | Release 0.8.0 | +| 2018/11/28 | 489 | Avoid a panic that affected clients written in Go when closing connections to the broker | +| 2018/11/23 | | Improve backward compatibility when handling slashes in regex for allowed certs (go-security#22) | +| 2018/11/23 | 485 | Fail gracefully in the `ping` app when the configuration is not present | +| 2018/11/20 | 483 | Resolve a client subscription leak by unsubscribing on context cancellation | +| 2018/11/15 | | When provisioning is compiled in - support self updating using `go-updater` (provisioning-agent#53) | +| 2018/11/14 | 476 | Allow the SSL cache to always be written via `plugin.security.always_overwrite_cache` | +| 2018/11/02 | 473 | Support running Choria Server in a namespace on Enterprise Linux via a COMMAND_PREFIX in the init script | +| 2018/10/24 | 467 | Support writing server status regularly | +| 2018/10/27 | 470 | Switch to `github.com/gofrs/uuid` for UUID generation | +| 2018/10/18 | | Release 0.7.0 | +| 2018/10/02 | 462 | Allow custom packages to supply their own sysv init start order | +| 2018/09/18 | 458 | Update network broker to 1.1.0 which includes `gnatsd` 1.3.0 | +| 2018/09/17 | 456 | Provisioner Target plugins now have a context in their calls so they can do internal retries | +| 2018/09/15 | 447 | Create a single plugin interface that supports many types of plugin | +| 2018/09/11 | 444 | Set ulimits for the broker appropriately for 50 000 connections | +| 2018/09/02 | 430 | Allow agents to publish lifecycle events | +| 2018/08/31 | 428 | Add a CLI tool to view provisioning broker decisions - `tool provisioner` | +| 2018/08/29 | 426 | Correctly compiled servers will enter provisioning mode when the configuration file is missing entirely | +| 2018/08/27 | | Release 0.6.0 | +| 2018/08/26 | | Update provisioning agent dependency, allows `restart` when not in provisioning mode if a token is set | +| 2018/08/26 | 422 | publish a shutdown lifecycle event on clean shutdowns | +| 2018/08/25 | 419 | Add `tool event`, `tool sub` and `tool pub` commands to the CLI | +| 2018/08/24 | 416 | Publish a startup lifecycle event on startup | +| 2018/08/22 | 411 | Expose the version to Prometheus as `choria_build_info` | +| 2018/08/22 | 412 | Attempt to find the FQDN via DNS lookups before calling Puppet when the hostname is incomplete | +| 2018/08/16 | 408 | Add a plugin to assist with resolving the provisioning mode target brokers | +| 2018/08/10 | 402 | Ensure provisioning mode is active only for the server and not client invocations | +| 2018/08/09 | | Release 0.5.1 | +| 2018/08/09 | 403 | Ensure insecure provisioning mode works on non puppet nodes | +| 2018/08/03 | 398 | Support an auth token during provisioning | +| 2018/08/02 | 394 | Support a fact source during provisioning mode | +| 2018/08/02 | 394 | Fix registration handling when in provisioning mode | +| 2018/07/31 | 390 | Avoid leaking metrics in long running clients that make many new client instances | +| 2018/07/20 | | Release 0.5.0 | +| 2018/07/13 | 382 | Improve mcollective compatibility by supporting shallow merges of multiple fact files | +| 2018/07/12 | 379 | Increase the NATS Stream Adapter work channel size to function on large networks | +| 2018/07/12 | 377 | When adapting Choria messages to NATS Streams include the Choria RequestID | +| 2018/07/12 | 375 | Ensure all loggers are configured with the correct level and format | +| 2018/07/11 | | Disable full JSON schema validation by default due to performance concerns (go-protocol#23) | +| 2018/07/11 | | Update `gnatsd` to `1.2.0` to improve stability at >30k nodes when clustered (go-network-broker#6) | +| 2018/07/11 | 373 | Support Ubuntu 18.04 | +| 2018/07/11 | 361 | When embedding the Choria Server initial startup errors can now be detected and handled | +| 2018/07/11 | 362 | When embedding the Choria Server one can now prevent certain agents from loading | +| 2018/07/11 | 366 | Consult `/etc/choria/client.cfg` and `~/.choria` in addition to mcollective locations | +| 2018/07/03 | 359 | Resolve a go routine leak when using the connector in a long running client | +| 2018/06/26 | 353 | Handle connection errors in NATS Streaming brokers in the Adapters, require NATS Streaming >= `0.10.0` | +| 2018/06/18 | 346 | Add a high performance, filtering capable basic network validation CLI `choria ping` | +| 2018/06/15 | 343 | Resolve the merging of identity & certname concepts that erroneously happened during the security refacor | +| 2018/06/14 | 341 | Ensure non root users - like clients - get a username based certname not FQDN one | +| 2018/06/07 | 336 | Fix the setting that allows disabling broker order randomization | +| 2018/06/06 | 333 | Randomize broker connections by default | +| 2018/06/06 | 331 | Add a short grace period to clock checks to allow for real world realities wrt synced clocks | +| 2018/05/31 | | Release 0.4.0 | +| 2018/05/29 | 320 | Make the enroll process more robust in the face of interruptions | +| 2018/05/23 | 308 | Fix running `choria buildinfo` | +| 2018/05/23 | 309 | Create `go-security` package with the Choria security providers for reuse in other eco system projects | +| 2018/05/22 | 306 | Fix registration feature when running in insecure mode | +| 2018/05/18 | 302 | Include a hint when the source data for registration changed | +| 2018/05/16 | | Release 0.3.0 | +| 2018/05/08 | 287 | Create the concept of a Security Provider and create providers for Puppet and File, add `choria enroll` | +| 2018/05/03 | 284 | On systemd based distributions ensure that upgrading choria with Puppet is more reliable | +| 2018/04/25 | 271 | Log rotation for `choria-*.log` which covers audit, ruby and more | +| 2018/04/25 | 267 | Ensure that the ruby shim based agents have access to the correct request time | +| 2018/04/24 | | Release 0.2.0 | +| 2018/04/23 | 243 | Create a compatibility framework for MCollective Agents written in Ruby | +| 2018/04/23 | 252 | Avoid logrotate errors when the package was installed but choria never ran | +| 2018/04/09 | 240 | When facter is available use it to determine the FQDN to improve default behavior on debian like systems | +| 2018/04/09 | 236 | Allow `nats://host:port` and `host:port` to be used when referencing brokers | +| 2018/04/09 | 235 | Detect empty initial server list when starting federation brokers | +| 2018/03/29 | 229 | Surface more NATS internal debug logs as notice and error | +| 2018/03/29 | 228 | Increase TLS timeouts to 2 seconds to improve functioning over latency and heavily loaded servers | +| 2018/03/26 | 199 | Do not use HTTP to fetch internal NATS stats | +| 2018/03/26 | 220 | Update gnats and go-nats to latest versions | +| 2018/03/26 | 222 | Allow the network broker write deadline to be configured | +| 2018/03/23 | 218 | Avoid rotating empty log files and ensure the newest log is the one being written too | +| 2018/03/21 | | Release 0.1.0 | +| 2018/03/08 | 208 | Improve compatibility with MCollective Choria by not base64 encoding payloads | +| 2018/03/08 | 207 | Ensure the filter is valid when creating `direct_request` messages | +| 2018/03/07 | 204 | Support writing a thread dump to the OS temp dir on receiving SIGQUIT | +| 2018/03/07 | 202 | Do not rely purely on `PATH` to find `puppet`, look in some standard paths as well | +| 2018/03/06 | | Release 0.0.11 | +| 2018/03/06 | 198 | Reuse http.Transport used to fetch gnatsd statistics to avoid a leak on recent go+gnatsd combination | +| 2018/03/05 | | Release 0.0.10 | +| 2018/03/05 | 194 | Revert `gnatsd` to `1.0.4`, upgrade Golang to `1.10` | +| 2018/03/05 | | Release 0.0.9 | +| 2018/03/05 | 190 | Downgrade to Go 1.9.2 to avoid run away go routines | +| 2018/03/05 | | Release 0.0.8 | +| 2018/03/05 | 187 | Create a schema for the NATS Stream Adapter and publish it in the messages | +| 2018/03/05 | 174 | Report the `mtime` of the file in the file content registration plugin, support compressing the data | +| 2018/03/02 | 183 | Update Go to `1.10` | +| 2018/03/01 | 180 | Show the Go version used to compile the binary in `buildinfo` | +| 2018/03/01 | 173 | Record and expose the total number of messages received by the `server` | +| 2018/03/01 | 176 | Intercept various `gnatsd` debug log messages and elevate them to notice and error | +| 2018/03/01 | 175 | Update embedded `gnatsd` to `1.0.6` | +| 2018/02/19 | 171 | Show embedded `gnatsd` version in `buildinfo` | +| 2018/02/19 | | Release 0.0.7 | +| 2018/02/19 | 165 | Discard NATS messages when the work buffer is full in the NATS Streaming adapter | +| 2018/02/19 | 166 | Remove unwanted debug output | +| 2018/02/16 | 167 | Clarify the Choria flavor reported by choria_util#info | +| 2018/02/01 | 163 | Avoid large data storms after a reconnect cycle by limiting the publish buffer | +| 2018/02/01 | 151 | Add xenial and stretch packages | +| 2018/01/22 | 152 | Support automagic validation of structs received over the network, support shellsafe for now | +| 2018/01/20 | 150 | Release 0.0.6 | +| 2018/01/20 | 58 | A mostly compatible `rpcutil` agent was added | +| 2018/01/20 | 148 | The TTL of incoming request messages are checked | +| 2018/01/20 | 146 | Stats about the server and message life cycle are recorded | +| 2018/01/19 | 133 | A timeout context is supplied to actions when they get executed | +| 2018/01/16 | 134 | Use new packaging infrastructure and move building to a circleci pipeline | +| 2018/01/12 | 131 | Additional agents can now be added into the binary at compile time | +| 2018/01/12 | 125 | All files in additional dot config dirs are now parsed | +| 2018/01/12 | 128 | Add additional fields related to the RPC request to mcorpc.Request | +| 2018/01/10 | 120 | The concept of a provisioning mode was added along with a agent to assist automated provisioning | +| 2018/01/09 | 60 | Auditing was added for mcorpc agents | +| 2018/01/09 | 69 | The protocol package has been moved to `choria-io/go-protocol` | +| 2018/01/08 | 118 | Create a helper to parse mcorpc requests into a standard structure | +| 2018/01/05 | 114 | Ensure the logfile name matches the package name | +| 2018/01/06 | | Release 0.0.5 | +| 2018/01/05 | 110 | Correctly detect startup failures in the el6 init script | +| 2018/01/04 | 111 | Treat the defaults file as config in the el6 rpm | +| 2017/12/25 | 108 | Improve logrotation - avoid appending to a rotated file | +| 2017/12/21 | 106 | Make the max connections a build parameter and default it to 50 000 | +| 2017/12/20 | 101 | Add a random backoff to initial connection in adapters and the connector | +| 2017/12/20 | 102 | Expose connector details to prometheus | +| 2017/12/13 | | Release 0.0.4 | +| 2017/12/14 | 97 | Stats about the internals of the protocol are exposed | +| 2017/12/14 | 80 | When doing SRV lookups employ a cache to speed things up | +| 2017/12/14 | 92 | When shutting down daemons on rhel6 wait for them to exit and then KILL them after 5 seconds | +| 2017/12/14 | 91 | Avoid race condition while determining if the network broker started | +| 2017/12/14 | 90 | Emit build info on `/choria/` | +| 2017/12/13 | | Release 0.0.3 | +| 2017/12/12 | 81 | Export metrics `/choria/prometheus` when enabled | +| 2017/12/10 | 73 | Federation brokers now correctly subscribe to the configured names | +| 2017/12/10 | 71 | Fix TLS network cluster | +| 2017/12/10 | | Release 0.0.2 | +| 2017/12/10 | 67 | Distribute sample `broker.conf` and `server.conf` | +| 2017/12/10 | 65 | When running as root do not call `puppet apply` 100s of times | +| 2017/12/10 | 64 | Ensure the broker exits on interrupt when the NATS based broker is running | +| 2017/12/09 | 59 | Add a compatible `choria_util` agent | +| 2017/12/09 | 57 | Create basic MCollective SimpleRPC compatible agents written in Go and compiled in | +| 2017/12/08 | 53 | Adds the `buildinfo` subcommand | +| 2017/12/08 | 52 | Improve cross compile compatibility by using `os.Getuid()` instead of `user.Current()` | +| 2017/12/08 | | Release 0.0.1 | diff --git a/CONFIGURATION.md b/CONFIGURATION.md index b06e4f055..a525899df 100644 --- a/CONFIGURATION.md +++ b/CONFIGURATION.md @@ -38,65 +38,64 @@ A few special types are defined, the rest map to standard Go types |[plugin.choria.discovery.inventory.source](#pluginchoriadiscoveryinventorysource)|[plugin.choria.federation.cluster](#pluginchoriafederationcluster)| |[plugin.choria.federation.collectives](#pluginchoriafederationcollectives)|[plugin.choria.federation_middleware_hosts](#pluginchoriafederation_middleware_hosts)| |[plugin.choria.legacy_lifecycle_format](#pluginchorialegacy_lifecycle_format)|[plugin.choria.machine.store](#pluginchoriamachinestore)| -|[plugin.choria.middleware_hosts](#pluginchoriamiddleware_hosts)|[plugin.choria.network.client_anon_tls](#pluginchorianetworkclient_anon_tls)| -|[plugin.choria.network.client_hosts](#pluginchorianetworkclient_hosts)|[plugin.choria.network.client_port](#pluginchorianetworkclient_port)| -|[plugin.choria.network.client_signer_cert](#pluginchorianetworkclient_signer_cert)|[plugin.choria.network.client_tls_force_required](#pluginchorianetworkclient_tls_force_required)| -|[plugin.choria.network.deny_server_connections](#pluginchorianetworkdeny_server_connections)|[plugin.choria.network.gateway_name](#pluginchorianetworkgateway_name)| -|[plugin.choria.network.gateway_port](#pluginchorianetworkgateway_port)|[plugin.choria.network.gateway_remotes](#pluginchorianetworkgateway_remotes)| -|[plugin.choria.network.leafnode_port](#pluginchorianetworkleafnode_port)|[plugin.choria.network.leafnode_remotes](#pluginchorianetworkleafnode_remotes)| -|[plugin.choria.network.listen_address](#pluginchorianetworklisten_address)|[plugin.choria.network.mapping.names](#pluginchorianetworkmappingnames)| -|[plugin.choria.network.peer_password](#pluginchorianetworkpeer_password)|[plugin.choria.network.peer_port](#pluginchorianetworkpeer_port)| -|[plugin.choria.network.peer_user](#pluginchorianetworkpeer_user)|[plugin.choria.network.peers](#pluginchorianetworkpeers)| -|[plugin.choria.network.pprof_port](#pluginchorianetworkpprof_port)|[plugin.choria.network.provisioning.client_password](#pluginchorianetworkprovisioningclient_password)| -|[plugin.choria.network.provisioning.signer_cert](#pluginchorianetworkprovisioningsigner_cert)|[plugin.choria.network.public_url](#pluginchorianetworkpublic_url)| -|[plugin.choria.network.server_signer_cert](#pluginchorianetworkserver_signer_cert)|[plugin.choria.network.stream.advisory_replicas](#pluginchorianetworkstreamadvisory_replicas)| -|[plugin.choria.network.stream.advisory_retention](#pluginchorianetworkstreamadvisory_retention)|[plugin.choria.network.stream.event_replicas](#pluginchorianetworkstreamevent_replicas)| -|[plugin.choria.network.stream.event_retention](#pluginchorianetworkstreamevent_retention)|[plugin.choria.network.stream.leader_election_replicas](#pluginchorianetworkstreamleader_election_replicas)| -|[plugin.choria.network.stream.leader_election_ttl](#pluginchorianetworkstreamleader_election_ttl)|[plugin.choria.network.stream.machine_replicas](#pluginchorianetworkstreammachine_replicas)| -|[plugin.choria.network.stream.machine_retention](#pluginchorianetworkstreammachine_retention)|[plugin.choria.network.stream.manage_streams](#pluginchorianetworkstreammanage_streams)| -|[plugin.choria.network.stream.store](#pluginchorianetworkstreamstore)|[plugin.choria.network.system.password](#pluginchorianetworksystempassword)| -|[plugin.choria.network.system.user](#pluginchorianetworksystemuser)|[plugin.choria.network.tls_timeout](#pluginchorianetworktls_timeout)| -|[plugin.choria.network.websocket_advertise](#pluginchorianetworkwebsocket_advertise)|[plugin.choria.network.websocket_port](#pluginchorianetworkwebsocket_port)| -|[plugin.choria.network.write_deadline](#pluginchorianetworkwrite_deadline)|[plugin.choria.prometheus_textfile_directory](#pluginchoriaprometheus_textfile_directory)| -|[plugin.choria.puppetca_host](#pluginchoriapuppetca_host)|[plugin.choria.puppetca_port](#pluginchoriapuppetca_port)| -|[plugin.choria.puppetdb_host](#pluginchoriapuppetdb_host)|[plugin.choria.puppetdb_port](#pluginchoriapuppetdb_port)| -|[plugin.choria.puppetserver_host](#pluginchoriapuppetserver_host)|[plugin.choria.puppetserver_port](#pluginchoriapuppetserver_port)| -|[plugin.choria.randomize_middleware_hosts](#pluginchoriarandomize_middleware_hosts)|[plugin.choria.registration.file_content.compression](#pluginchoriaregistrationfile_contentcompression)| -|[plugin.choria.registration.file_content.data](#pluginchoriaregistrationfile_contentdata)|[plugin.choria.registration.file_content.target](#pluginchoriaregistrationfile_contenttarget)| -|[plugin.choria.registration.inventory_content.compression](#pluginchoriaregistrationinventory_contentcompression)|[plugin.choria.registration.inventory_content.target](#pluginchoriaregistrationinventory_contenttarget)| -|[plugin.choria.require_client_filter](#pluginchoriarequire_client_filter)|[plugin.choria.security.certname_whitelist](#pluginchoriasecuritycertname_whitelist)| -|[plugin.choria.security.privileged_users](#pluginchoriasecurityprivileged_users)|[plugin.choria.security.request_signer.seed_file](#pluginchoriasecurityrequest_signerseed_file)| -|[plugin.choria.security.request_signer.service](#pluginchoriasecurityrequest_signerservice)|[plugin.choria.security.request_signer.token_file](#pluginchoriasecurityrequest_signertoken_file)| -|[plugin.choria.security.request_signer.url](#pluginchoriasecurityrequest_signerurl)|[plugin.choria.security.request_signing_certificate](#pluginchoriasecurityrequest_signing_certificate)| -|[plugin.choria.security.serializer](#pluginchoriasecurityserializer)|[plugin.choria.security.server.seed_file](#pluginchoriasecurityserverseed_file)| -|[plugin.choria.security.server.token_file](#pluginchoriasecurityservertoken_file)|[plugin.choria.server.provision](#pluginchoriaserverprovision)| -|[plugin.choria.services.registry.cache](#pluginchoriaservicesregistrycache)|[plugin.choria.services.registry.store](#pluginchoriaservicesregistrystore)| -|[plugin.choria.srv_domain](#pluginchoriasrv_domain)|[plugin.choria.ssldir](#pluginchoriassldir)| -|[plugin.choria.stats_address](#pluginchoriastats_address)|[plugin.choria.stats_port](#pluginchoriastats_port)| -|[plugin.choria.status_file_path](#pluginchoriastatus_file_path)|[plugin.choria.status_update_interval](#pluginchoriastatus_update_interval)| -|[plugin.choria.submission.max_spool_size](#pluginchoriasubmissionmax_spool_size)|[plugin.choria.submission.spool](#pluginchoriasubmissionspool)| -|[plugin.choria.use_srv](#pluginchoriause_srv)|[plugin.login.aaasvc.login.url](#pluginloginaaasvcloginurl)| -|[plugin.nats.credentials](#pluginnatscredentials)|[plugin.nats.ngs](#pluginnatsngs)| -|[plugin.nats.pass](#pluginnatspass)|[plugin.nats.user](#pluginnatsuser)| -|[plugin.scout.agent_disabled](#pluginscoutagent_disabled)|[plugin.scout.overrides](#pluginscoutoverrides)| -|[plugin.scout.tags](#pluginscouttags)|[plugin.security.always_overwrite_cache](#pluginsecurityalways_overwrite_cache)| -|[plugin.security.certmanager.alt_names](#pluginsecuritycertmanageralt_names)|[plugin.security.certmanager.api_version](#pluginsecuritycertmanagerapi_version)| -|[plugin.security.certmanager.issuer](#pluginsecuritycertmanagerissuer)|[plugin.security.certmanager.namespace](#pluginsecuritycertmanagernamespace)| -|[plugin.security.certmanager.replace](#pluginsecuritycertmanagerreplace)|[plugin.security.cipher_suites](#pluginsecuritycipher_suites)| -|[plugin.security.client_anon_tls](#pluginsecurityclient_anon_tls)|[plugin.security.ecc_curves](#pluginsecurityecc_curves)| -|[plugin.security.file.ca](#pluginsecurityfileca)|[plugin.security.file.cache](#pluginsecurityfilecache)| -|[plugin.security.file.certificate](#pluginsecurityfilecertificate)|[plugin.security.file.key](#pluginsecurityfilekey)| -|[plugin.security.pkcs11.driver_file](#pluginsecuritypkcs11driver_file)|[plugin.security.pkcs11.slot](#pluginsecuritypkcs11slot)| -|[plugin.security.provider](#pluginsecurityprovider)|[plugin.security.server_anon_tls](#pluginsecurityserver_anon_tls)| -|[plugin.security.support_legacy_certificates](#pluginsecuritysupport_legacy_certificates)|[plugin.yaml](#pluginyaml)| -|[publish_timeout](#publish_timeout)|[registerinterval](#registerinterval)| -|[registration](#registration)|[registration_collective](#registration_collective)| -|[registration_splay](#registration_splay)|[rpcaudit](#rpcaudit)| -|[rpcauditprovider](#rpcauditprovider)|[rpcauthorization](#rpcauthorization)| -|[rpcauthprovider](#rpcauthprovider)|[rpclimitmethod](#rpclimitmethod)| -|[securityprovider](#securityprovider)|[soft_shutdown](#soft_shutdown)| -|[soft_shutdown_timeout](#soft_shutdown_timeout)|[threaded](#threaded)| -|[ttl](#ttl)|[](#)| +|[plugin.choria.middleware_hosts](#pluginchoriamiddleware_hosts)|[plugin.choria.network.client_hosts](#pluginchorianetworkclient_hosts)| +|[plugin.choria.network.client_port](#pluginchorianetworkclient_port)|[plugin.choria.network.client_signer_cert](#pluginchorianetworkclient_signer_cert)| +|[plugin.choria.network.client_tls_force_required](#pluginchorianetworkclient_tls_force_required)|[plugin.choria.network.deny_server_connections](#pluginchorianetworkdeny_server_connections)| +|[plugin.choria.network.gateway_name](#pluginchorianetworkgateway_name)|[plugin.choria.network.gateway_port](#pluginchorianetworkgateway_port)| +|[plugin.choria.network.gateway_remotes](#pluginchorianetworkgateway_remotes)|[plugin.choria.network.leafnode_port](#pluginchorianetworkleafnode_port)| +|[plugin.choria.network.leafnode_remotes](#pluginchorianetworkleafnode_remotes)|[plugin.choria.network.listen_address](#pluginchorianetworklisten_address)| +|[plugin.choria.network.mapping.names](#pluginchorianetworkmappingnames)|[plugin.choria.network.peer_password](#pluginchorianetworkpeer_password)| +|[plugin.choria.network.peer_port](#pluginchorianetworkpeer_port)|[plugin.choria.network.peer_user](#pluginchorianetworkpeer_user)| +|[plugin.choria.network.peers](#pluginchorianetworkpeers)|[plugin.choria.network.pprof_port](#pluginchorianetworkpprof_port)| +|[plugin.choria.network.provisioning.client_password](#pluginchorianetworkprovisioningclient_password)|[plugin.choria.network.provisioning.signer_cert](#pluginchorianetworkprovisioningsigner_cert)| +|[plugin.choria.network.public_url](#pluginchorianetworkpublic_url)|[plugin.choria.network.server_signer_cert](#pluginchorianetworkserver_signer_cert)| +|[plugin.choria.network.stream.advisory_replicas](#pluginchorianetworkstreamadvisory_replicas)|[plugin.choria.network.stream.advisory_retention](#pluginchorianetworkstreamadvisory_retention)| +|[plugin.choria.network.stream.event_replicas](#pluginchorianetworkstreamevent_replicas)|[plugin.choria.network.stream.event_retention](#pluginchorianetworkstreamevent_retention)| +|[plugin.choria.network.stream.leader_election_replicas](#pluginchorianetworkstreamleader_election_replicas)|[plugin.choria.network.stream.leader_election_ttl](#pluginchorianetworkstreamleader_election_ttl)| +|[plugin.choria.network.stream.machine_replicas](#pluginchorianetworkstreammachine_replicas)|[plugin.choria.network.stream.machine_retention](#pluginchorianetworkstreammachine_retention)| +|[plugin.choria.network.stream.manage_streams](#pluginchorianetworkstreammanage_streams)|[plugin.choria.network.stream.store](#pluginchorianetworkstreamstore)| +|[plugin.choria.network.system.password](#pluginchorianetworksystempassword)|[plugin.choria.network.system.user](#pluginchorianetworksystemuser)| +|[plugin.choria.network.tls_timeout](#pluginchorianetworktls_timeout)|[plugin.choria.network.websocket_advertise](#pluginchorianetworkwebsocket_advertise)| +|[plugin.choria.network.websocket_port](#pluginchorianetworkwebsocket_port)|[plugin.choria.network.write_deadline](#pluginchorianetworkwrite_deadline)| +|[plugin.choria.prometheus_textfile_directory](#pluginchoriaprometheus_textfile_directory)|[plugin.choria.puppetca_host](#pluginchoriapuppetca_host)| +|[plugin.choria.puppetca_port](#pluginchoriapuppetca_port)|[plugin.choria.puppetdb_host](#pluginchoriapuppetdb_host)| +|[plugin.choria.puppetdb_port](#pluginchoriapuppetdb_port)|[plugin.choria.puppetserver_host](#pluginchoriapuppetserver_host)| +|[plugin.choria.puppetserver_port](#pluginchoriapuppetserver_port)|[plugin.choria.randomize_middleware_hosts](#pluginchoriarandomize_middleware_hosts)| +|[plugin.choria.registration.file_content.compression](#pluginchoriaregistrationfile_contentcompression)|[plugin.choria.registration.file_content.data](#pluginchoriaregistrationfile_contentdata)| +|[plugin.choria.registration.file_content.target](#pluginchoriaregistrationfile_contenttarget)|[plugin.choria.registration.inventory_content.compression](#pluginchoriaregistrationinventory_contentcompression)| +|[plugin.choria.registration.inventory_content.target](#pluginchoriaregistrationinventory_contenttarget)|[plugin.choria.require_client_filter](#pluginchoriarequire_client_filter)| +|[plugin.choria.security.certname_whitelist](#pluginchoriasecuritycertname_whitelist)|[plugin.choria.security.privileged_users](#pluginchoriasecurityprivileged_users)| +|[plugin.choria.security.request_signer.seed_file](#pluginchoriasecurityrequest_signerseed_file)|[plugin.choria.security.request_signer.service](#pluginchoriasecurityrequest_signerservice)| +|[plugin.choria.security.request_signer.token_file](#pluginchoriasecurityrequest_signertoken_file)|[plugin.choria.security.request_signer.url](#pluginchoriasecurityrequest_signerurl)| +|[plugin.choria.security.request_signing_certificate](#pluginchoriasecurityrequest_signing_certificate)|[plugin.choria.security.serializer](#pluginchoriasecurityserializer)| +|[plugin.choria.security.server.seed_file](#pluginchoriasecurityserverseed_file)|[plugin.choria.security.server.token_file](#pluginchoriasecurityservertoken_file)| +|[plugin.choria.server.provision](#pluginchoriaserverprovision)|[plugin.choria.services.registry.cache](#pluginchoriaservicesregistrycache)| +|[plugin.choria.services.registry.store](#pluginchoriaservicesregistrystore)|[plugin.choria.srv_domain](#pluginchoriasrv_domain)| +|[plugin.choria.ssldir](#pluginchoriassldir)|[plugin.choria.stats_address](#pluginchoriastats_address)| +|[plugin.choria.stats_port](#pluginchoriastats_port)|[plugin.choria.status_file_path](#pluginchoriastatus_file_path)| +|[plugin.choria.status_update_interval](#pluginchoriastatus_update_interval)|[plugin.choria.submission.max_spool_size](#pluginchoriasubmissionmax_spool_size)| +|[plugin.choria.submission.spool](#pluginchoriasubmissionspool)|[plugin.choria.use_srv](#pluginchoriause_srv)| +|[plugin.login.aaasvc.login.url](#pluginloginaaasvcloginurl)|[plugin.nats.credentials](#pluginnatscredentials)| +|[plugin.nats.ngs](#pluginnatsngs)|[plugin.nats.pass](#pluginnatspass)| +|[plugin.nats.user](#pluginnatsuser)|[plugin.scout.agent_disabled](#pluginscoutagent_disabled)| +|[plugin.scout.overrides](#pluginscoutoverrides)|[plugin.scout.tags](#pluginscouttags)| +|[plugin.security.always_overwrite_cache](#pluginsecurityalways_overwrite_cache)|[plugin.security.certmanager.alt_names](#pluginsecuritycertmanageralt_names)| +|[plugin.security.certmanager.api_version](#pluginsecuritycertmanagerapi_version)|[plugin.security.certmanager.issuer](#pluginsecuritycertmanagerissuer)| +|[plugin.security.certmanager.namespace](#pluginsecuritycertmanagernamespace)|[plugin.security.certmanager.replace](#pluginsecuritycertmanagerreplace)| +|[plugin.security.cipher_suites](#pluginsecuritycipher_suites)|[plugin.security.client_anon_tls](#pluginsecurityclient_anon_tls)| +|[plugin.security.ecc_curves](#pluginsecurityecc_curves)|[plugin.security.file.ca](#pluginsecurityfileca)| +|[plugin.security.file.cache](#pluginsecurityfilecache)|[plugin.security.file.certificate](#pluginsecurityfilecertificate)| +|[plugin.security.file.key](#pluginsecurityfilekey)|[plugin.security.pkcs11.driver_file](#pluginsecuritypkcs11driver_file)| +|[plugin.security.pkcs11.slot](#pluginsecuritypkcs11slot)|[plugin.security.provider](#pluginsecurityprovider)| +|[plugin.security.server_anon_tls](#pluginsecurityserver_anon_tls)|[plugin.security.support_legacy_certificates](#pluginsecuritysupport_legacy_certificates)| +|[plugin.yaml](#pluginyaml)|[publish_timeout](#publish_timeout)| +|[registerinterval](#registerinterval)|[registration](#registration)| +|[registration_collective](#registration_collective)|[registration_splay](#registration_splay)| +|[rpcaudit](#rpcaudit)|[rpcauditprovider](#rpcauditprovider)| +|[rpcauthorization](#rpcauthorization)|[rpcauthprovider](#rpcauthprovider)| +|[rpclimitmethod](#rpclimitmethod)|[securityprovider](#securityprovider)| +|[soft_shutdown](#soft_shutdown)|[soft_shutdown_timeout](#soft_shutdown_timeout)| +|[threaded](#threaded)|[ttl](#ttl)| ## activate_agents @@ -366,14 +365,6 @@ Directory where Autonomous Agents are stored Set specific middleware hosts in the format host:port, if unset uses SRV -## plugin.choria.network.client_anon_tls - - * **Type:** boolean - -Now enabled using plugin.choria.network.client_signer_cert - -**This setting is deprecated or already unused** - ## plugin.choria.network.client_hosts * **Type:** comma_split diff --git a/build/build.go b/build/build.go index 09fb832ca..f225a329c 100644 --- a/build/build.go +++ b/build/build.go @@ -9,7 +9,7 @@ import ( ) // Version the application version -var Version = "0.25.1" +var Version = "0.26.0" // SHA is the git reference used to build this package var SHA = "unknown" diff --git a/client/aaa_signerclient/action_sign.go b/client/aaa_signerclient/action_sign.go index 6f32b4e0a..4e3d9a0cb 100644 --- a/client/aaa_signerclient/action_sign.go +++ b/client/aaa_signerclient/action_sign.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'aaa_signer' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'aaa_signer' Version 0.26.0 generated using Choria version 0.26.0 package aaa_signerclient diff --git a/client/aaa_signerclient/ddl.json b/client/aaa_signerclient/ddl.json index ba94093bd..6de421ad5 100644 --- a/client/aaa_signerclient/ddl.json +++ b/client/aaa_signerclient/ddl.json @@ -1 +1 @@ -{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"license":"Apache-2.0","author":"R.I.Pienaar \u003crip@devco.net\u003e","timeout":10,"name":"aaa_signer","version":"0.25.1","url":"https://github.com/choria-io/aaasvc","description":"Request Signer for Choria AAA Service","provider":"golang","service":true},"actions":[{"action":"sign","input":{"request":{"prompt":"RPC Request","description":"The request to sign","type":"string","optional":false,"validation":"shellsafe","maxlength":100240},"token":{"prompt":"JWT Token","description":"The JWT token authenticating the user","type":"string","optional":false,"validation":".","maxlength":10024}},"output":{"secure_request":{"description":"The signed Secure Request","display_as":"Secure Request","type":"string"}},"display":"always","description":"Signs a RPC Request on behalf of a user"}]} \ No newline at end of file +{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"license":"Apache-2.0","author":"R.I.Pienaar \u003crip@devco.net\u003e","timeout":10,"name":"aaa_signer","version":"0.26.0","url":"https://github.com/choria-io/aaasvc","description":"Request Signer for Choria AAA Service","provider":"golang","service":true},"actions":[{"action":"sign","input":{"request":{"prompt":"RPC Request","description":"The request to sign","type":"string","optional":false,"validation":"shellsafe","maxlength":100240},"token":{"prompt":"JWT Token","description":"The JWT token authenticating the user","type":"string","optional":false,"validation":".","maxlength":10024}},"output":{"secure_request":{"description":"The signed Secure Request","display_as":"Secure Request","type":"string"}},"display":"always","description":"Signs a RPC Request on behalf of a user"}]} \ No newline at end of file diff --git a/client/aaa_signerclient/doc.go b/client/aaa_signerclient/doc.go index c798f0fab..fdf491074 100644 --- a/client/aaa_signerclient/doc.go +++ b/client/aaa_signerclient/doc.go @@ -1,8 +1,8 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'aaa_signer' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'aaa_signer' Version 0.26.0 generated using Choria version 0.26.0 -// Package aaa_signerclient is an API client to the Choria Aaa_signer agent Version 0.25.1. +// Package aaa_signerclient is an API client to the Choria Aaa_signer agent Version 0.26.0. // // Actions: // * Sign - Signs a RPC Request on behalf of a user diff --git a/client/choria_provisionclient/action_configure.go b/client/choria_provisionclient/action_configure.go index 51c165dce..33f64d446 100644 --- a/client/choria_provisionclient/action_configure.go +++ b/client/choria_provisionclient/action_configure.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_provision' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_provision' Version 0.26.0 generated using Choria version 0.26.0 package choria_provisionclient diff --git a/client/choria_provisionclient/action_gen25519.go b/client/choria_provisionclient/action_gen25519.go index 42507dca7..d06ef05de 100644 --- a/client/choria_provisionclient/action_gen25519.go +++ b/client/choria_provisionclient/action_gen25519.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_provision' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_provision' Version 0.26.0 generated using Choria version 0.26.0 package choria_provisionclient diff --git a/client/choria_provisionclient/action_gencsr.go b/client/choria_provisionclient/action_gencsr.go index 0227a767b..2d112d27a 100644 --- a/client/choria_provisionclient/action_gencsr.go +++ b/client/choria_provisionclient/action_gencsr.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_provision' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_provision' Version 0.26.0 generated using Choria version 0.26.0 package choria_provisionclient diff --git a/client/choria_provisionclient/action_jwt.go b/client/choria_provisionclient/action_jwt.go index 2f57c31d1..d4564d96f 100644 --- a/client/choria_provisionclient/action_jwt.go +++ b/client/choria_provisionclient/action_jwt.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_provision' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_provision' Version 0.26.0 generated using Choria version 0.26.0 package choria_provisionclient diff --git a/client/choria_provisionclient/action_reprovision.go b/client/choria_provisionclient/action_reprovision.go index 715f92ea0..d7087f046 100644 --- a/client/choria_provisionclient/action_reprovision.go +++ b/client/choria_provisionclient/action_reprovision.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_provision' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_provision' Version 0.26.0 generated using Choria version 0.26.0 package choria_provisionclient diff --git a/client/choria_provisionclient/action_restart.go b/client/choria_provisionclient/action_restart.go index c94a32a6d..299316997 100644 --- a/client/choria_provisionclient/action_restart.go +++ b/client/choria_provisionclient/action_restart.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_provision' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_provision' Version 0.26.0 generated using Choria version 0.26.0 package choria_provisionclient diff --git a/client/choria_provisionclient/ddl.json b/client/choria_provisionclient/ddl.json index 7ebabe143..442a693dd 100644 --- a/client/choria_provisionclient/ddl.json +++ b/client/choria_provisionclient/ddl.json @@ -1 +1 @@ -{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"name":"choria_provision","description":"Choria Provisioner","author":"R.I.Pienaar ","license":"Apache-2.0","version":"0.25.1","url":"https://choria.io","timeout":20},"actions":[{"action":"configure","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":true,"validation":".","maxlength":128},"config":{"prompt":"Configuration","description":"The configuration to apply to this node","type":"string","default":null,"optional":false,"validation":"^{.+}$","maxlength":2048},"certificate":{"prompt":"Certificate","description":"PEM text block for the certificate","type":"string","default":null,"optional":true,"validation":"^-----BEGIN CERTIFICATE-----","maxlength":10240},"ca":{"prompt":"CA Bundle","description":"PEM text block for the CA","type":"string","default":null,"optional":true,"validation":"^-----BEGIN CERTIFICATE-----","maxlength":20480},"ssldir":{"prompt":"SSL Dir","description":"Directory for storing the certificate in","type":"string","default":null,"optional":true,"validation":".","maxlength":500},"key":{"description":"A RSA private key","prompt":"PEM text block for the private key","type":"string","default":null,"optional":true,"validation":"-----BEGIN RSA PRIVATE KEY-----","maxlength":10240},"ecdh_public":{"prompt":"ECDH Public Key","description":"Required when sending a private key","type":"string","default":"","optional":true,"maxlength":64,"validation":"."},"action_policies":{"prompt":"Action Policy Documents","description":"Map of Action Policy documents indexed by file name","type":"hash","default":{},"optional":true},"opa_policies":{"prompt":"Open Policy Agent Policy Documents","description":"Map of Open Policy Agent Policy documents indexed by file name","type":"hash","default":{},"optional":true},"server_jwt":{"description":"JWT file used to identify the server to the broker for ed25519 based authentication","prompt":"Server JWT","type":"string","default":"","optional":true,"maxlength":2048,"validation":"."}},"output":{"message":{"description":"Status message from the Provisioner","display_as":"Message","type":"string","default":null}},"display":"failed","description":"Configure the Choria Server"},{"action":"gen25519","display":"always","description":"Generates a new ED25519 keypair","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":false,"validation":".","maxlength":128},"nonce":{"prompt":"Nonce","description":"Single use token to be signed by the private key being generated","type":"string","default":"","optional":false,"validation":".","maxlength":64}},"output":{"public_key":{"description":"The ED255519 public key hex encoded","display_as":"Public Key","type":"string","default":""},"directory":{"description":"The directory where server.key and server.pub is written to","display_as":"Directory","type":"string","default":""},"signature":{"description":"The signature of the nonce made using the new private key, hex encoded","display_as":"Signature","type":"string","default":""}}},{"action":"gencsr","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":false,"validation":".","maxlength":128},"cn":{"prompt":"Common Name","description":"The certificate Common Name to place in the CSR","type":"string","default":null,"optional":true,"validation":"^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]).)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$","maxlength":80},"C":{"prompt":"Country","description":"Country Code","type":"string","default":null,"optional":true,"validation":"^[A-Z]{2}$","maxlength":2},"L":{"prompt":"Locality","description":"Locality or municipality (such as city or town name)","type":"string","default":null,"optional":true,"validation":"^[\\w\\s-]+$","maxlength":50},"O":{"prompt":"Organization","description":"Organization","type":"string","default":null,"optional":true,"validation":"^[\\w\\s-]+$","maxlength":50},"OU":{"prompt":"Organizational Unit","description":"Organizational Unit","type":"string","default":null,"optional":true,"validation":"^[\\w\\s-]+$","maxlength":50},"ST":{"prompt":"State","description":"State","type":"string","default":null,"optional":true,"validation":"^[\\w\\s-]+$","maxlength":50}},"output":{"csr":{"description":"PEM text block for the CSR","display_as":"CSR","type":"string","default":null},"public_key":{"description":"PEM text block of the public key that made the CSR","display_as":"Public Key","type":"string","default":null},"ssldir":{"description":"SSL directory as determined by the server","display_as":"SSL Dir","type":"string","default":null}},"display":"always","description":"Request a CSR from the Choria Server"},{"action":"jwt","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":false,"validation":".","maxlength":128}},"output":{"jwt":{"description":"The contents of the JWT token","display_as":"JWT Token","type":"string","default":""},"ecdh_public":{"description":"The ECDH public key for calculating shared secrets","display_as":"ECDH Public Key","type":"string","default":""}},"display":"always","description":"Re-enable provision mode in a running Choria Server"},{"action":"reprovision","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":false,"validation":".","maxlength":128}},"output":{"message":{"description":"Status message from the Provisioner","display_as":"Message","type":"string","default":null}},"display":"always","description":"Reenable provision mode in a running Choria Server"},{"action":"restart","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":false,"validation":".","maxlength":128},"splay":{"prompt":"Splay time","description":"The configuration to apply to this node","type":"number","default":null,"optional":true}},"output":{"message":{"description":"Status message from the Provisioner","display_as":"Message","type":"string","default":null}},"display":"failed","description":"Restart the Choria Server"}]} \ No newline at end of file +{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"name":"choria_provision","description":"Choria Provisioner","author":"R.I.Pienaar ","license":"Apache-2.0","version":"0.26.0","url":"https://choria.io","timeout":20},"actions":[{"action":"configure","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":true,"validation":".","maxlength":128},"config":{"prompt":"Configuration","description":"The configuration to apply to this node","type":"string","default":null,"optional":false,"validation":"^{.+}$","maxlength":2048},"certificate":{"prompt":"Certificate","description":"PEM text block for the certificate","type":"string","default":null,"optional":true,"validation":"^-----BEGIN CERTIFICATE-----","maxlength":10240},"ca":{"prompt":"CA Bundle","description":"PEM text block for the CA","type":"string","default":null,"optional":true,"validation":"^-----BEGIN CERTIFICATE-----","maxlength":20480},"ssldir":{"prompt":"SSL Dir","description":"Directory for storing the certificate in","type":"string","default":null,"optional":true,"validation":".","maxlength":500},"key":{"description":"A RSA private key","prompt":"PEM text block for the private key","type":"string","default":null,"optional":true,"validation":"-----BEGIN RSA PRIVATE KEY-----","maxlength":10240},"ecdh_public":{"prompt":"ECDH Public Key","description":"Required when sending a private key","type":"string","default":"","optional":true,"maxlength":64,"validation":"."},"action_policies":{"prompt":"Action Policy Documents","description":"Map of Action Policy documents indexed by file name","type":"hash","default":{},"optional":true},"opa_policies":{"prompt":"Open Policy Agent Policy Documents","description":"Map of Open Policy Agent Policy documents indexed by file name","type":"hash","default":{},"optional":true},"server_jwt":{"description":"JWT file used to identify the server to the broker for ed25519 based authentication","prompt":"Server JWT","type":"string","default":"","optional":true,"maxlength":2048,"validation":"."}},"output":{"message":{"description":"Status message from the Provisioner","display_as":"Message","type":"string","default":null}},"display":"failed","description":"Configure the Choria Server"},{"action":"gen25519","display":"always","description":"Generates a new ED25519 keypair","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":false,"validation":".","maxlength":128},"nonce":{"prompt":"Nonce","description":"Single use token to be signed by the private key being generated","type":"string","default":"","optional":false,"validation":".","maxlength":64}},"output":{"public_key":{"description":"The ED255519 public key hex encoded","display_as":"Public Key","type":"string","default":""},"directory":{"description":"The directory where server.key and server.pub is written to","display_as":"Directory","type":"string","default":""},"signature":{"description":"The signature of the nonce made using the new private key, hex encoded","display_as":"Signature","type":"string","default":""}}},{"action":"gencsr","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":false,"validation":".","maxlength":128},"cn":{"prompt":"Common Name","description":"The certificate Common Name to place in the CSR","type":"string","default":null,"optional":true,"validation":"^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]).)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$","maxlength":80},"C":{"prompt":"Country","description":"Country Code","type":"string","default":null,"optional":true,"validation":"^[A-Z]{2}$","maxlength":2},"L":{"prompt":"Locality","description":"Locality or municipality (such as city or town name)","type":"string","default":null,"optional":true,"validation":"^[\\w\\s-]+$","maxlength":50},"O":{"prompt":"Organization","description":"Organization","type":"string","default":null,"optional":true,"validation":"^[\\w\\s-]+$","maxlength":50},"OU":{"prompt":"Organizational Unit","description":"Organizational Unit","type":"string","default":null,"optional":true,"validation":"^[\\w\\s-]+$","maxlength":50},"ST":{"prompt":"State","description":"State","type":"string","default":null,"optional":true,"validation":"^[\\w\\s-]+$","maxlength":50}},"output":{"csr":{"description":"PEM text block for the CSR","display_as":"CSR","type":"string","default":null},"public_key":{"description":"PEM text block of the public key that made the CSR","display_as":"Public Key","type":"string","default":null},"ssldir":{"description":"SSL directory as determined by the server","display_as":"SSL Dir","type":"string","default":null}},"display":"always","description":"Request a CSR from the Choria Server"},{"action":"jwt","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":false,"validation":".","maxlength":128}},"output":{"jwt":{"description":"The contents of the JWT token","display_as":"JWT Token","type":"string","default":""},"ecdh_public":{"description":"The ECDH public key for calculating shared secrets","display_as":"ECDH Public Key","type":"string","default":""}},"display":"always","description":"Re-enable provision mode in a running Choria Server"},{"action":"reprovision","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":false,"validation":".","maxlength":128}},"output":{"message":{"description":"Status message from the Provisioner","display_as":"Message","type":"string","default":null}},"display":"always","description":"Reenable provision mode in a running Choria Server"},{"action":"restart","input":{"token":{"prompt":"Token","description":"Authentication token to pass to the server","type":"string","default":"","optional":false,"validation":".","maxlength":128},"splay":{"prompt":"Splay time","description":"The configuration to apply to this node","type":"number","default":null,"optional":true}},"output":{"message":{"description":"Status message from the Provisioner","display_as":"Message","type":"string","default":null}},"display":"failed","description":"Restart the Choria Server"}]} \ No newline at end of file diff --git a/client/choria_provisionclient/doc.go b/client/choria_provisionclient/doc.go index f5b5ffc56..03f53f191 100644 --- a/client/choria_provisionclient/doc.go +++ b/client/choria_provisionclient/doc.go @@ -1,8 +1,8 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_provision' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_provision' Version 0.26.0 generated using Choria version 0.26.0 -// Package choria_provisionclient is an API client to the Choria Choria_provision agent Version 0.25.1. +// Package choria_provisionclient is an API client to the Choria Choria_provision agent Version 0.26.0. // // Actions: // * Configure - Configure the Choria Server diff --git a/client/choria_registryclient/action_ddl.go b/client/choria_registryclient/action_ddl.go index 63127a7c3..db4ed25b7 100644 --- a/client/choria_registryclient/action_ddl.go +++ b/client/choria_registryclient/action_ddl.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_registry' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_registry' Version 0.26.0 generated using Choria version 0.26.0 package choria_registryclient diff --git a/client/choria_registryclient/action_names.go b/client/choria_registryclient/action_names.go index 5a46799c1..5cde121de 100644 --- a/client/choria_registryclient/action_names.go +++ b/client/choria_registryclient/action_names.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_registry' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_registry' Version 0.26.0 generated using Choria version 0.26.0 package choria_registryclient diff --git a/client/choria_registryclient/ddl.json b/client/choria_registryclient/ddl.json index d605f31ff..dc62dcd25 100644 --- a/client/choria_registryclient/ddl.json +++ b/client/choria_registryclient/ddl.json @@ -1 +1 @@ -{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"license":"Apache-2.0","author":"rip@devco.net \u003crip@devco.net\u003e","timeout":2,"name":"choria_registry","version":"0.25.1","url":"https://choria.io","description":"Choria Registry Service","provider":"golang","service":true},"actions":[{"action":"names","description":"List of all known DDLs for a specific plugin type","input":{"plugin_type":{"prompt":"Plugin Type","description":"The type of plugin","type":"list","default":"agent","optional":false,"list":["agent"]}},"output":{"names":{"description":"The names of all known DDL files","type":"array","display_as":"Names"},"plugin_type":{"description":"The type of plugin","display_as":"Type","type":"string"}}},{"action":"ddl","input":{"format":{"prompt":"Plugin Format","description":"The result format the plugin should be retrieved in","type":"list","default":"json","optional":true,"list":["ddl","json"]},"name":{"prompt":"Plugin Name","description":"The name of the plugin","type":"string","optional":false,"validation":"shellsafe","maxlength":64},"plugin_type":{"prompt":"Plugin Type","description":"The type of plugin","type":"list","default":"agent","optional":false,"list":["agent"]}},"output":{"ddl":{"description":"The plugin DDL in the requested format","display_as":"DDL","type":"string"},"name":{"description":"The name of the plugin","display_as":"Name","type":"string"},"plugin_type":{"description":"The type of plugin","display_as":"Type","type":"string"},"version":{"description":"The version of the plugin","display_as":"Version","type":"string"}},"display":"always","description":"Retrieve the DDL for a specific plugin"}]} \ No newline at end of file +{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"license":"Apache-2.0","author":"rip@devco.net \u003crip@devco.net\u003e","timeout":2,"name":"choria_registry","version":"0.26.0","url":"https://choria.io","description":"Choria Registry Service","provider":"golang","service":true},"actions":[{"action":"names","description":"List of all known DDLs for a specific plugin type","input":{"plugin_type":{"prompt":"Plugin Type","description":"The type of plugin","type":"list","default":"agent","optional":false,"list":["agent"]}},"output":{"names":{"description":"The names of all known DDL files","type":"array","display_as":"Names"},"plugin_type":{"description":"The type of plugin","display_as":"Type","type":"string"}}},{"action":"ddl","input":{"format":{"prompt":"Plugin Format","description":"The result format the plugin should be retrieved in","type":"list","default":"json","optional":true,"list":["ddl","json"]},"name":{"prompt":"Plugin Name","description":"The name of the plugin","type":"string","optional":false,"validation":"shellsafe","maxlength":64},"plugin_type":{"prompt":"Plugin Type","description":"The type of plugin","type":"list","default":"agent","optional":false,"list":["agent"]}},"output":{"ddl":{"description":"The plugin DDL in the requested format","display_as":"DDL","type":"string"},"name":{"description":"The name of the plugin","display_as":"Name","type":"string"},"plugin_type":{"description":"The type of plugin","display_as":"Type","type":"string"},"version":{"description":"The version of the plugin","display_as":"Version","type":"string"}},"display":"always","description":"Retrieve the DDL for a specific plugin"}]} \ No newline at end of file diff --git a/client/choria_registryclient/doc.go b/client/choria_registryclient/doc.go index 28160c1c2..5ee9a7031 100644 --- a/client/choria_registryclient/doc.go +++ b/client/choria_registryclient/doc.go @@ -1,8 +1,8 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_registry' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_registry' Version 0.26.0 generated using Choria version 0.26.0 -// Package choria_registryclient is an API client to the Choria Choria_registry agent Version 0.25.1. +// Package choria_registryclient is an API client to the Choria Choria_registry agent Version 0.26.0. // // Actions: // * Names - List of all known DDLs for a specific plugin type diff --git a/client/choria_utilclient/action_info.go b/client/choria_utilclient/action_info.go index 16c114620..2da9ab4ae 100644 --- a/client/choria_utilclient/action_info.go +++ b/client/choria_utilclient/action_info.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_util' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_util' Version 0.26.0 generated using Choria version 0.26.0 package choria_utilclient diff --git a/client/choria_utilclient/action_machine_state.go b/client/choria_utilclient/action_machine_state.go index a74bc7e4c..20259b52b 100644 --- a/client/choria_utilclient/action_machine_state.go +++ b/client/choria_utilclient/action_machine_state.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_util' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_util' Version 0.26.0 generated using Choria version 0.26.0 package choria_utilclient diff --git a/client/choria_utilclient/action_machine_states.go b/client/choria_utilclient/action_machine_states.go index f1f3e21b3..357bf393d 100644 --- a/client/choria_utilclient/action_machine_states.go +++ b/client/choria_utilclient/action_machine_states.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_util' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_util' Version 0.26.0 generated using Choria version 0.26.0 package choria_utilclient diff --git a/client/choria_utilclient/action_machine_transition.go b/client/choria_utilclient/action_machine_transition.go index a41fc2bae..ba74b5f4a 100644 --- a/client/choria_utilclient/action_machine_transition.go +++ b/client/choria_utilclient/action_machine_transition.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_util' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_util' Version 0.26.0 generated using Choria version 0.26.0 package choria_utilclient diff --git a/client/choria_utilclient/ddl.json b/client/choria_utilclient/ddl.json index 74dbe82e1..939a680d8 100644 --- a/client/choria_utilclient/ddl.json +++ b/client/choria_utilclient/ddl.json @@ -1 +1 @@ -{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"name":"choria_util","description":"Choria Utilities","author":"R.I.Pienaar ","license":"Apache-2.0","version":"0.25.1","url":"https://choria.io","timeout":2},"actions":[{"action":"info","input":{},"output":{"security":{"description":"Security Provider plugin","display_as":"Security Provider","type":"string"},"secure_protocol":{"description":"If the protocol is running with PKI security enabled","display_as":"Protocol Secure","type":"boolean"},"connector":{"description":"Connector plugin","display_as":"Connector","type":"string"},"connector_tls":{"description":"If the connector is running with TLS security enabled","display_as":"Connector TLS","type":"boolean"},"path":{"description":"Active OS PATH","display_as":"Path","type":"string"},"choria_version":{"description":"Choria version","display_as":"Choria Version","type":"string"},"client_version":{"description":"Middleware client library version","display_as":"Middleware Client Library Version","type":"string"},"client_flavour":{"description":"Middleware client library flavour","display_as":"Middleware Client Flavour","type":"string"},"client_options":{"description":"Active Middleware client options","display_as":"Middleware Client Options","type":"hash"},"connected_server":{"description":"Connected middleware server","display_as":"Connected Broker","type":"string"},"client_stats":{"description":"Middleware client statistics","display_as":"Middleware Client Stats","type":"hash"},"facter_domain":{"description":"Facter domain","display_as":"Facter Domain","type":"string"},"facter_command":{"description":"Command used for Facter","display_as":"Facter","type":"string"},"srv_domain":{"description":"Configured SRV domain","display_as":"SRV Domain","type":"string"},"using_srv":{"description":"Indicates if SRV records are considered","display_as":"SRV Used","type":"boolean"},"middleware_servers":{"description":"Middleware Servers configured or discovered","display_as":"Middleware","type":"array"}},"display":"failed","description":"Choria related information from the running Daemon and Middleware","aggregate":[{"function":"summary","args":["choria_version"]},{"function":"summary","args":["client_version"]},{"function":"summary","args":["client_flavour"]},{"function":"summary","args":["connected_server"]},{"function":"summary","args":["srv_domain"]},{"function":"summary","args":["using_srv"]},{"function":"summary","args":["secure_protocol"]},{"function":"summary","args":["connector_tls"]}]},{"action":"machine_state","description":"Retrieves the current state of a specific Choria Autonomous Agent","display":"ok","input":{"instance":{"prompt":"Instance ID","description":"Machine Instance ID","type":"string","default":null,"optional":true,"validation":"^.+-.+-.+-.+-.+$","maxlength":36},"name":{"prompt":"Name","description":"Machine Name","type":"string","default":null,"optional":true,"validation":"^[a-zA-Z][a-zA-Z0-9_-]+","maxlength":128},"path":{"prompt":"Path","description":"Machine Path","type":"string","default":null,"optional":true,"validation":".+","maxlength":512}},"aggregate":[{"function":"summary","args":["state"]},{"function":"summary","args":["name"]},{"function":"summary","args":["version"]}],"output":{"name":{"type":"string","description":"The name of the autonomous agent","display_as":"Name"},"version":{"type":"string","description":"The version of the autonomous agent","display_as":"Version"},"state":{"type":"string","description":"The current state the agent is in","display_as":"State"},"path":{"type":"string","description":"The location on disk where the autonomous agent is stored","display_as":"Path"},"id":{"type":"string","description":"The unique running ID of the autonomous agent","display_as":"ID"},"start_time":{"type":"string","description":"The time the autonomous agent was started in unix seconds","display_as":"Started"},"available_transitions":{"type":"array","description":"The list of available transitions this autonomous agent can make","display_as":"Available Transitions"},"scout":{"type":"boolean","description":"True when this autonomous agent represents a Choria Scout Check","display_as":"Scout Check"},"current_state":{"description":"The Choria Scout specific state for Scout checks","display_as":"Scout State"}}},{"action":"machine_states","input":{},"output":{"machine_names":{"description":"List of running machine names","display_as":"Machine Names","type":"array"},"machine_ids":{"description":"List of running machine IDs","display_as":"Machine IDs","type":"array"},"states":{"description":"Hash map of machine statusses indexed by machine ID","display_as":"Machine States","type":"hash"}},"display":"always","description":"States of the hosted Choria Autonomous Agents","aggregate":[{"function":"summary","args":["machine_names"]}]},{"action":"machine_transition","input":{"instance":{"prompt":"Instance ID","description":"Machine Instance ID","type":"string","default":null,"optional":true,"validation":"^.+-.+-.+-.+-.+$","maxlength":36},"version":{"prompt":"Version","description":"Machine Version","type":"string","default":null,"optional":true,"validation":"^\\d+\\.\\d+\\.\\d+$","maxlength":20},"name":{"prompt":"Name","description":"Machine Name","type":"string","default":null,"optional":true,"validation":"^[a-zA-Z][a-zA-Z0-9_-]+","maxlength":128},"path":{"prompt":"Path","description":"Machine Path","type":"string","default":null,"optional":true,"validation":".+","maxlength":512},"transition":{"prompt":"Transition Name","description":"The transition event to send to the machine","type":"string","default":null,"optional":false,"validation":"^[a-zA-Z][a-zA-Z0-9_-]+$","maxlength":128}},"output":{"success":{"description":"Indicates if the transition was successfully accepted","display_as":"Accepted","type":"boolean"}},"display":"failed","description":"Attempts to force a transition in a hosted Choria Autonomous Agent"}]} \ No newline at end of file +{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"name":"choria_util","description":"Choria Utilities","author":"R.I.Pienaar ","license":"Apache-2.0","version":"0.26.0","url":"https://choria.io","timeout":2},"actions":[{"action":"info","input":{},"output":{"security":{"description":"Security Provider plugin","display_as":"Security Provider","type":"string"},"secure_protocol":{"description":"If the protocol is running with PKI security enabled","display_as":"Protocol Secure","type":"boolean"},"connector":{"description":"Connector plugin","display_as":"Connector","type":"string"},"connector_tls":{"description":"If the connector is running with TLS security enabled","display_as":"Connector TLS","type":"boolean"},"path":{"description":"Active OS PATH","display_as":"Path","type":"string"},"choria_version":{"description":"Choria version","display_as":"Choria Version","type":"string"},"client_version":{"description":"Middleware client library version","display_as":"Middleware Client Library Version","type":"string"},"client_flavour":{"description":"Middleware client library flavour","display_as":"Middleware Client Flavour","type":"string"},"client_options":{"description":"Active Middleware client options","display_as":"Middleware Client Options","type":"hash"},"connected_server":{"description":"Connected middleware server","display_as":"Connected Broker","type":"string"},"client_stats":{"description":"Middleware client statistics","display_as":"Middleware Client Stats","type":"hash"},"facter_domain":{"description":"Facter domain","display_as":"Facter Domain","type":"string"},"facter_command":{"description":"Command used for Facter","display_as":"Facter","type":"string"},"srv_domain":{"description":"Configured SRV domain","display_as":"SRV Domain","type":"string"},"using_srv":{"description":"Indicates if SRV records are considered","display_as":"SRV Used","type":"boolean"},"middleware_servers":{"description":"Middleware Servers configured or discovered","display_as":"Middleware","type":"array"}},"display":"failed","description":"Choria related information from the running Daemon and Middleware","aggregate":[{"function":"summary","args":["choria_version"]},{"function":"summary","args":["client_version"]},{"function":"summary","args":["client_flavour"]},{"function":"summary","args":["connected_server"]},{"function":"summary","args":["srv_domain"]},{"function":"summary","args":["using_srv"]},{"function":"summary","args":["secure_protocol"]},{"function":"summary","args":["connector_tls"]}]},{"action":"machine_state","description":"Retrieves the current state of a specific Choria Autonomous Agent","display":"ok","input":{"instance":{"prompt":"Instance ID","description":"Machine Instance ID","type":"string","default":null,"optional":true,"validation":"^.+-.+-.+-.+-.+$","maxlength":36},"name":{"prompt":"Name","description":"Machine Name","type":"string","default":null,"optional":true,"validation":"^[a-zA-Z][a-zA-Z0-9_-]+","maxlength":128},"path":{"prompt":"Path","description":"Machine Path","type":"string","default":null,"optional":true,"validation":".+","maxlength":512}},"aggregate":[{"function":"summary","args":["state"]},{"function":"summary","args":["name"]},{"function":"summary","args":["version"]}],"output":{"name":{"type":"string","description":"The name of the autonomous agent","display_as":"Name"},"version":{"type":"string","description":"The version of the autonomous agent","display_as":"Version"},"state":{"type":"string","description":"The current state the agent is in","display_as":"State"},"path":{"type":"string","description":"The location on disk where the autonomous agent is stored","display_as":"Path"},"id":{"type":"string","description":"The unique running ID of the autonomous agent","display_as":"ID"},"start_time":{"type":"string","description":"The time the autonomous agent was started in unix seconds","display_as":"Started"},"available_transitions":{"type":"array","description":"The list of available transitions this autonomous agent can make","display_as":"Available Transitions"},"scout":{"type":"boolean","description":"True when this autonomous agent represents a Choria Scout Check","display_as":"Scout Check"},"current_state":{"description":"The Choria Scout specific state for Scout checks","display_as":"Scout State"}}},{"action":"machine_states","input":{},"output":{"machine_names":{"description":"List of running machine names","display_as":"Machine Names","type":"array"},"machine_ids":{"description":"List of running machine IDs","display_as":"Machine IDs","type":"array"},"states":{"description":"Hash map of machine statusses indexed by machine ID","display_as":"Machine States","type":"hash"}},"display":"always","description":"States of the hosted Choria Autonomous Agents","aggregate":[{"function":"summary","args":["machine_names"]}]},{"action":"machine_transition","input":{"instance":{"prompt":"Instance ID","description":"Machine Instance ID","type":"string","default":null,"optional":true,"validation":"^.+-.+-.+-.+-.+$","maxlength":36},"version":{"prompt":"Version","description":"Machine Version","type":"string","default":null,"optional":true,"validation":"^\\d+\\.\\d+\\.\\d+$","maxlength":20},"name":{"prompt":"Name","description":"Machine Name","type":"string","default":null,"optional":true,"validation":"^[a-zA-Z][a-zA-Z0-9_-]+","maxlength":128},"path":{"prompt":"Path","description":"Machine Path","type":"string","default":null,"optional":true,"validation":".+","maxlength":512},"transition":{"prompt":"Transition Name","description":"The transition event to send to the machine","type":"string","default":null,"optional":false,"validation":"^[a-zA-Z][a-zA-Z0-9_-]+$","maxlength":128}},"output":{"success":{"description":"Indicates if the transition was successfully accepted","display_as":"Accepted","type":"boolean"}},"display":"failed","description":"Attempts to force a transition in a hosted Choria Autonomous Agent"}]} \ No newline at end of file diff --git a/client/choria_utilclient/doc.go b/client/choria_utilclient/doc.go index 687973f67..496710e93 100644 --- a/client/choria_utilclient/doc.go +++ b/client/choria_utilclient/doc.go @@ -1,8 +1,8 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'choria_util' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'choria_util' Version 0.26.0 generated using Choria version 0.26.0 -// Package choria_utilclient is an API client to the Choria Choria_util agent Version 0.25.1. +// Package choria_utilclient is an API client to the Choria Choria_util agent Version 0.26.0. // // Actions: // * Info - Choria related information from the running Daemon and Middleware diff --git a/client/rpcutilclient/action_agent_inventory.go b/client/rpcutilclient/action_agent_inventory.go index 00289b273..7bb328977 100644 --- a/client/rpcutilclient/action_agent_inventory.go +++ b/client/rpcutilclient/action_agent_inventory.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'rpcutil' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'rpcutil' Version 0.26.0 generated using Choria version 0.26.0 package rpcutilclient diff --git a/client/rpcutilclient/action_collective_info.go b/client/rpcutilclient/action_collective_info.go index 5f021d16c..0db920052 100644 --- a/client/rpcutilclient/action_collective_info.go +++ b/client/rpcutilclient/action_collective_info.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'rpcutil' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'rpcutil' Version 0.26.0 generated using Choria version 0.26.0 package rpcutilclient diff --git a/client/rpcutilclient/action_daemon_stats.go b/client/rpcutilclient/action_daemon_stats.go index cc4034eb1..962dd57b6 100644 --- a/client/rpcutilclient/action_daemon_stats.go +++ b/client/rpcutilclient/action_daemon_stats.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'rpcutil' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'rpcutil' Version 0.26.0 generated using Choria version 0.26.0 package rpcutilclient diff --git a/client/rpcutilclient/action_get_config_item.go b/client/rpcutilclient/action_get_config_item.go index 81f1a59bc..20385d9a7 100644 --- a/client/rpcutilclient/action_get_config_item.go +++ b/client/rpcutilclient/action_get_config_item.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'rpcutil' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'rpcutil' Version 0.26.0 generated using Choria version 0.26.0 package rpcutilclient diff --git a/client/rpcutilclient/action_get_data.go b/client/rpcutilclient/action_get_data.go index 28e1c7a2a..3001dec6f 100644 --- a/client/rpcutilclient/action_get_data.go +++ b/client/rpcutilclient/action_get_data.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'rpcutil' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'rpcutil' Version 0.26.0 generated using Choria version 0.26.0 package rpcutilclient diff --git a/client/rpcutilclient/action_get_fact.go b/client/rpcutilclient/action_get_fact.go index 9488921c7..0470a971a 100644 --- a/client/rpcutilclient/action_get_fact.go +++ b/client/rpcutilclient/action_get_fact.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'rpcutil' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'rpcutil' Version 0.26.0 generated using Choria version 0.26.0 package rpcutilclient diff --git a/client/rpcutilclient/action_get_facts.go b/client/rpcutilclient/action_get_facts.go index 738c81c67..fb2833c2c 100644 --- a/client/rpcutilclient/action_get_facts.go +++ b/client/rpcutilclient/action_get_facts.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'rpcutil' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'rpcutil' Version 0.26.0 generated using Choria version 0.26.0 package rpcutilclient diff --git a/client/rpcutilclient/action_inventory.go b/client/rpcutilclient/action_inventory.go index d15d4bb5a..584f0726b 100644 --- a/client/rpcutilclient/action_inventory.go +++ b/client/rpcutilclient/action_inventory.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'rpcutil' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'rpcutil' Version 0.26.0 generated using Choria version 0.26.0 package rpcutilclient diff --git a/client/rpcutilclient/action_ping.go b/client/rpcutilclient/action_ping.go index 6a9da7a21..33b224a7a 100644 --- a/client/rpcutilclient/action_ping.go +++ b/client/rpcutilclient/action_ping.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'rpcutil' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'rpcutil' Version 0.26.0 generated using Choria version 0.26.0 package rpcutilclient diff --git a/client/rpcutilclient/ddl.json b/client/rpcutilclient/ddl.json index af2d7677a..0bddb5559 100644 --- a/client/rpcutilclient/ddl.json +++ b/client/rpcutilclient/ddl.json @@ -1 +1 @@ -{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"name":"rpcutil","description":"Utility actions that expose information about the state of the running Server","author":"R.I.Pienaar ","license":"Apache-2.0","version":"0.25.1","url":"https://choria.io/","timeout":2},"actions":[{"action":"agent_inventory","input":{},"output":{"agents":{"description":"List of agents on the server","display_as":"Agents","type":"array"}},"display":"always","description":"Inventory of all agents on the server including versions, licenses and more"},{"action":"collective_info","input":{},"output":{"main_collective":{"description":"The main Collective","display_as":"Main Collective","type":"string"},"collectives":{"description":"All Collectives","display_as":"All Collectives","type":"array"}},"display":"always","description":"Info about the main and sub collectives that the server belongs to","aggregate":[{"function":"summary","args":["collectives"]}]},{"action":"daemon_stats","input":{},"output":{"threads":{"description":"List of threads active in the Choria Server","display_as":"Threads","type":"array"},"agents":{"description":"List of agents loaded","display_as":"Agents","type":"array"},"pid":{"description":"Process ID of the Choria Server","display_as":"PID","type":"integer"},"times":{"description":"Processor time consumed by the Choria Server","display_as":"Times","type":"hash"},"validated":{"description":"Count of messages that passed security validation","display_as":"Security Validated","type":"integer"},"unvalidated":{"description":"Count of messages that failed security validation","display_as":"Failed Security","type":"integer"},"passed":{"description":"Count of messages that passed filter checks","display_as":"Passed Filter","type":"integer"},"filtered":{"description":"Count of message that didn't pass filter checks","display_as":"Failed Filter","type":"integer"},"starttime":{"description":"Time the Choria Server started in unix seconds","display_as":"Start Time","type":"integer"},"total":{"description":"Count of messages received by the Choria Server","display_as":"Total Messages","type":"integer"},"replies":{"description":"Count of replies sent back to clients","display_as":"Replies","type":"integer"},"configfile":{"description":"Config file used to start the daemon","display_as":"Config File","type":"string"},"version":{"description":"Choria Server Version","display_as":"Version","type":"string"},"ttlexpired":{"description":"Count of messages that did pass TTL checks","display_as":"TTL Expired","type":"integer"}},"display":"always","description":"Get statistics from the running daemon","aggregate":[{"function":"summary","args":["version"]},{"function":"summary","args":["agents"]}]},{"action":"get_config_item","input":{"item":{"prompt":"Configuration Item","description":"The item to retrieve from the server","type":"string","optional":false,"validation":"^.+$","maxlength":120}},"output":{"item":{"description":"The config property being retrieved","display_as":"Property","type":"string"},"value":{"description":"The value that is in use","display_as":"Value"}},"display":"always","description":"Get the active value of a specific config property","aggregate":[{"function":"summary","args":["value"]}]},{"action":"get_data","input":{"source":{"prompt":"Data Source","description":"The data plugin to retrieve information from","type":"string","optional":false,"validation":"^\\w+$","maxlength":50},"query":{"prompt":"Query","description":"The query argument to supply to the data plugin","type":"string","default":null,"optional":true,"validation":"^.+$","maxlength":200}},"output":{},"display":"always","description":"Get data from a data plugin"},{"action":"get_fact","input":{"fact":{"prompt":"The name of the fact","description":"The fact to retrieve","type":"string","default":null,"optional":false,"validation":".+","maxlength":512}},"output":{"fact":{"description":"The name of the fact being returned","display_as":"Fact","type":"string"},"value":{"description":"The value of the fact","display_as":"Value","default":null}},"display":"always","description":"Retrieve a single fact from the fact store","aggregate":[{"function":"summary","args":["value"]}]},{"action":"get_facts","input":{"facts":{"prompt":"Comma-separated list of facts to retrieve","description":"Facts to retrieve","type":"string","default":null,"optional":false,"validation":"^\\s*[\\w\\.\\-]+(\\s*,\\s*[\\w\\.\\-]+)*$","maxlength":200}},"output":{"values":{"description":"List of values of the facts","display_as":"Values","type":"hash"}},"display":"always","description":"Retrieve multiple facts from the fact store"},{"action":"inventory","input":{},"output":{"agents":{"description":"List of agent names","display_as":"Agents","type":"array"},"facts":{"description":"List of facts and values","display_as":"Facts","type":"hash"},"classes":{"description":"List of classes on the system","display_as":"Classes","type":"array"},"version":{"description":"Choria Server Version","display_as":"Version","type":"string"},"main_collective":{"description":"The main Collective","display_as":"Main Collective","type":"string"},"collectives":{"description":"All Collectives","display_as":"All Collectives","type":"array"},"data_plugins":{"description":"List of data plugin names","display_as":"Data Plugins","type":"array"},"machines":{"description":"Autonomous Agents","display_as":"Machines","type":"hash"}},"display":"always","description":"System Inventory"},{"action":"ping","input":{},"output":{"pong":{"description":"The local Unix timestamp","display_as":"Timestamp","type":"number"}},"display":"always","description":"Responds to requests for PING with PONG"}]} \ No newline at end of file +{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"name":"rpcutil","description":"Utility actions that expose information about the state of the running Server","author":"R.I.Pienaar ","license":"Apache-2.0","version":"0.26.0","url":"https://choria.io/","timeout":2},"actions":[{"action":"agent_inventory","input":{},"output":{"agents":{"description":"List of agents on the server","display_as":"Agents","type":"array"}},"display":"always","description":"Inventory of all agents on the server including versions, licenses and more"},{"action":"collective_info","input":{},"output":{"main_collective":{"description":"The main Collective","display_as":"Main Collective","type":"string"},"collectives":{"description":"All Collectives","display_as":"All Collectives","type":"array"}},"display":"always","description":"Info about the main and sub collectives that the server belongs to","aggregate":[{"function":"summary","args":["collectives"]}]},{"action":"daemon_stats","input":{},"output":{"threads":{"description":"List of threads active in the Choria Server","display_as":"Threads","type":"array"},"agents":{"description":"List of agents loaded","display_as":"Agents","type":"array"},"pid":{"description":"Process ID of the Choria Server","display_as":"PID","type":"integer"},"times":{"description":"Processor time consumed by the Choria Server","display_as":"Times","type":"hash"},"validated":{"description":"Count of messages that passed security validation","display_as":"Security Validated","type":"integer"},"unvalidated":{"description":"Count of messages that failed security validation","display_as":"Failed Security","type":"integer"},"passed":{"description":"Count of messages that passed filter checks","display_as":"Passed Filter","type":"integer"},"filtered":{"description":"Count of message that didn't pass filter checks","display_as":"Failed Filter","type":"integer"},"starttime":{"description":"Time the Choria Server started in unix seconds","display_as":"Start Time","type":"integer"},"total":{"description":"Count of messages received by the Choria Server","display_as":"Total Messages","type":"integer"},"replies":{"description":"Count of replies sent back to clients","display_as":"Replies","type":"integer"},"configfile":{"description":"Config file used to start the daemon","display_as":"Config File","type":"string"},"version":{"description":"Choria Server Version","display_as":"Version","type":"string"},"ttlexpired":{"description":"Count of messages that did pass TTL checks","display_as":"TTL Expired","type":"integer"}},"display":"always","description":"Get statistics from the running daemon","aggregate":[{"function":"summary","args":["version"]},{"function":"summary","args":["agents"]}]},{"action":"get_config_item","input":{"item":{"prompt":"Configuration Item","description":"The item to retrieve from the server","type":"string","optional":false,"validation":"^.+$","maxlength":120}},"output":{"item":{"description":"The config property being retrieved","display_as":"Property","type":"string"},"value":{"description":"The value that is in use","display_as":"Value"}},"display":"always","description":"Get the active value of a specific config property","aggregate":[{"function":"summary","args":["value"]}]},{"action":"get_data","input":{"source":{"prompt":"Data Source","description":"The data plugin to retrieve information from","type":"string","optional":false,"validation":"^\\w+$","maxlength":50},"query":{"prompt":"Query","description":"The query argument to supply to the data plugin","type":"string","default":null,"optional":true,"validation":"^.+$","maxlength":200}},"output":{},"display":"always","description":"Get data from a data plugin"},{"action":"get_fact","input":{"fact":{"prompt":"The name of the fact","description":"The fact to retrieve","type":"string","default":null,"optional":false,"validation":".+","maxlength":512}},"output":{"fact":{"description":"The name of the fact being returned","display_as":"Fact","type":"string"},"value":{"description":"The value of the fact","display_as":"Value","default":null}},"display":"always","description":"Retrieve a single fact from the fact store","aggregate":[{"function":"summary","args":["value"]}]},{"action":"get_facts","input":{"facts":{"prompt":"Comma-separated list of facts to retrieve","description":"Facts to retrieve","type":"string","default":null,"optional":false,"validation":"^\\s*[\\w\\.\\-]+(\\s*,\\s*[\\w\\.\\-]+)*$","maxlength":200}},"output":{"values":{"description":"List of values of the facts","display_as":"Values","type":"hash"}},"display":"always","description":"Retrieve multiple facts from the fact store"},{"action":"inventory","input":{},"output":{"agents":{"description":"List of agent names","display_as":"Agents","type":"array"},"facts":{"description":"List of facts and values","display_as":"Facts","type":"hash"},"classes":{"description":"List of classes on the system","display_as":"Classes","type":"array"},"version":{"description":"Choria Server Version","display_as":"Version","type":"string"},"main_collective":{"description":"The main Collective","display_as":"Main Collective","type":"string"},"collectives":{"description":"All Collectives","display_as":"All Collectives","type":"array"},"data_plugins":{"description":"List of data plugin names","display_as":"Data Plugins","type":"array"},"machines":{"description":"Autonomous Agents","display_as":"Machines","type":"hash"}},"display":"always","description":"System Inventory"},{"action":"ping","input":{},"output":{"pong":{"description":"The local Unix timestamp","display_as":"Timestamp","type":"number"}},"display":"always","description":"Responds to requests for PING with PONG"}]} \ No newline at end of file diff --git a/client/rpcutilclient/doc.go b/client/rpcutilclient/doc.go index 67ca9537d..e3c907471 100644 --- a/client/rpcutilclient/doc.go +++ b/client/rpcutilclient/doc.go @@ -1,8 +1,8 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'rpcutil' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'rpcutil' Version 0.26.0 generated using Choria version 0.26.0 -// Package rpcutilclient is an API client to the Choria Rpcutil agent Version 0.25.1. +// Package rpcutilclient is an API client to the Choria Rpcutil agent Version 0.26.0. // // Actions: // * AgentInventory - Inventory of all agents on the server including versions, licenses and more diff --git a/client/scoutclient/action_checks.go b/client/scoutclient/action_checks.go index b35c39b32..11ff4dd6c 100644 --- a/client/scoutclient/action_checks.go +++ b/client/scoutclient/action_checks.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'scout' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'scout' Version 0.26.0 generated using Choria version 0.26.0 package scoutclient diff --git a/client/scoutclient/action_goss_validate.go b/client/scoutclient/action_goss_validate.go index 7fe1fe05e..1327c1581 100644 --- a/client/scoutclient/action_goss_validate.go +++ b/client/scoutclient/action_goss_validate.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'scout' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'scout' Version 0.26.0 generated using Choria version 0.26.0 package scoutclient diff --git a/client/scoutclient/action_maintenance.go b/client/scoutclient/action_maintenance.go index 1d095c6e2..c8138c30f 100644 --- a/client/scoutclient/action_maintenance.go +++ b/client/scoutclient/action_maintenance.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'scout' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'scout' Version 0.26.0 generated using Choria version 0.26.0 package scoutclient diff --git a/client/scoutclient/action_resume.go b/client/scoutclient/action_resume.go index 196e3f0b8..9c6b3dd47 100644 --- a/client/scoutclient/action_resume.go +++ b/client/scoutclient/action_resume.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'scout' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'scout' Version 0.26.0 generated using Choria version 0.26.0 package scoutclient diff --git a/client/scoutclient/action_trigger.go b/client/scoutclient/action_trigger.go index 05c675505..b0c0f25a0 100644 --- a/client/scoutclient/action_trigger.go +++ b/client/scoutclient/action_trigger.go @@ -1,6 +1,6 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'scout' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'scout' Version 0.26.0 generated using Choria version 0.26.0 package scoutclient diff --git a/client/scoutclient/ddl.json b/client/scoutclient/ddl.json index b7722f96a..9d071d1ab 100644 --- a/client/scoutclient/ddl.json +++ b/client/scoutclient/ddl.json @@ -1 +1 @@ -{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"license":"Apache-2.0","author":"R.I.Pienaar ","timeout":5,"name":"scout","version":"0.25.1","url":"https://choria.io","description":"Choria Scout Agent Management API","provider":"golang"},"actions":[{"action":"checks","display":"ok","description":"Obtain a list of checks and their current status","input":{},"output":{"checks":{"description":"Details about each check","type":"array","display_as":"Checks"}}},{"action":"resume","input":{"checks":{"prompt":"Checks","description":"Check to resume, empty means all","type":"array","optional":true}},"output":{"failed":{"description":"List of checks that could not be resumed","display_as":"Failed","type":"array"},"transitioned":{"description":"List of checks that were resumed","display_as":"Triggered","type":"array"},"skipped":{"description":"List of checks that was skipped","display_as":"Skipped","type":"array"}},"display":"failed","description":"Resume active checking of one or more checks"},{"action":"maintenance","input":{"checks":{"prompt":"Checks","description":"Check to pause, empty means all","type":"array","optional":true}},"output":{"failed":{"description":"List of checks that could not be paused","display_as":"Failed","type":"array"},"transitioned":{"description":"List of checks that were paused","display_as":"Triggered","type":"array"},"skipped":{"description":"List of checks that was skipped","display_as":"Skipped","type":"array"}},"display":"failed","description":"Pause checking of one or more checks"},{"action":"goss_validate","description":"Performs a Goss validation using a specific file","display":"failed","aggregate":[{"function":"summary","args":["tests",{"format":"%s Tests on %d node(s)"}]},{"function":"summary","args":["failures",{"format":"%s Failed test on %d node(s)"}]},{"function":"summary","args":["success",{"format":"%s Passed tests on %d node(s)"}]}],"input":{"file":{"prompt":"Goss File","description":"Path to the Goss validation specification","type":"string","maxlength":256,"validation":".+","optional":false},"vars":{"prompt":"Vars File","description":"Path to a file to use as template variables","type":"string","maxlength":256,"validation":".+","optional":true}},"output":{"tests":{"description":"The number of tests that were run","display_as":"Tests","type":"integer"},"failures":{"description":"The number of tests that failed","display_as":"Failed Tests","type":"integer"},"runtime":{"description":"The time it took to run the tests, in seconds","display_as":"Runtime","type":"integer"},"success":{"description":"Indicates if the test passed","display_as":"Success","type":"string"},"summary":{"description":"A human friendly test result","display_as":"Summary","type":"string"},"results":{"description":"The full test results","display_as":"Results","type":"array"}}},{"action":"trigger","input":{"checks":{"prompt":"Checks","description":"Check to trigger, empty means all","type":"array","optional":true}},"output":{"failed":{"description":"List of checks that could not be triggered","display_as":"Failed","type":"array"},"transitioned":{"description":"List of checks that were triggered","display_as":"Triggered","type":"array"},"skipped":{"description":"List of checks that was skipped","display_as":"Skipped","type":"array"}},"display":"failed","description":"Force an immediate check of one or more checks"}]} \ No newline at end of file +{"$schema":"https://choria.io/schemas/mcorpc/ddl/v1/agent.json","metadata":{"license":"Apache-2.0","author":"R.I.Pienaar ","timeout":5,"name":"scout","version":"0.26.0","url":"https://choria.io","description":"Choria Scout Agent Management API","provider":"golang"},"actions":[{"action":"checks","display":"ok","description":"Obtain a list of checks and their current status","input":{},"output":{"checks":{"description":"Details about each check","type":"array","display_as":"Checks"}}},{"action":"resume","input":{"checks":{"prompt":"Checks","description":"Check to resume, empty means all","type":"array","optional":true}},"output":{"failed":{"description":"List of checks that could not be resumed","display_as":"Failed","type":"array"},"transitioned":{"description":"List of checks that were resumed","display_as":"Triggered","type":"array"},"skipped":{"description":"List of checks that was skipped","display_as":"Skipped","type":"array"}},"display":"failed","description":"Resume active checking of one or more checks"},{"action":"maintenance","input":{"checks":{"prompt":"Checks","description":"Check to pause, empty means all","type":"array","optional":true}},"output":{"failed":{"description":"List of checks that could not be paused","display_as":"Failed","type":"array"},"transitioned":{"description":"List of checks that were paused","display_as":"Triggered","type":"array"},"skipped":{"description":"List of checks that was skipped","display_as":"Skipped","type":"array"}},"display":"failed","description":"Pause checking of one or more checks"},{"action":"goss_validate","description":"Performs a Goss validation using a specific file","display":"failed","aggregate":[{"function":"summary","args":["tests",{"format":"%s Tests on %d node(s)"}]},{"function":"summary","args":["failures",{"format":"%s Failed test on %d node(s)"}]},{"function":"summary","args":["success",{"format":"%s Passed tests on %d node(s)"}]}],"input":{"file":{"prompt":"Goss File","description":"Path to the Goss validation specification","type":"string","maxlength":256,"validation":".+","optional":false},"vars":{"prompt":"Vars File","description":"Path to a file to use as template variables","type":"string","maxlength":256,"validation":".+","optional":true}},"output":{"tests":{"description":"The number of tests that were run","display_as":"Tests","type":"integer"},"failures":{"description":"The number of tests that failed","display_as":"Failed Tests","type":"integer"},"runtime":{"description":"The time it took to run the tests, in seconds","display_as":"Runtime","type":"integer"},"success":{"description":"Indicates if the test passed","display_as":"Success","type":"string"},"summary":{"description":"A human friendly test result","display_as":"Summary","type":"string"},"results":{"description":"The full test results","display_as":"Results","type":"array"}}},{"action":"trigger","input":{"checks":{"prompt":"Checks","description":"Check to trigger, empty means all","type":"array","optional":true}},"output":{"failed":{"description":"List of checks that could not be triggered","display_as":"Failed","type":"array"},"transitioned":{"description":"List of checks that were triggered","display_as":"Triggered","type":"array"},"skipped":{"description":"List of checks that was skipped","display_as":"Skipped","type":"array"}},"display":"failed","description":"Force an immediate check of one or more checks"}]} \ No newline at end of file diff --git a/client/scoutclient/doc.go b/client/scoutclient/doc.go index 1c583b45a..e0f7fce9f 100644 --- a/client/scoutclient/doc.go +++ b/client/scoutclient/doc.go @@ -1,8 +1,8 @@ // generated code; DO NOT EDIT // -// Client for Choria RPC Agent 'scout' Version 0.25.1 generated using Choria version 0.25.1 +// Client for Choria RPC Agent 'scout' Version 0.26.0 generated using Choria version 0.26.0 -// Package scoutclient is an API client to the Choria Scout agent Version 0.25.1. +// Package scoutclient is an API client to the Choria Scout agent Version 0.26.0. // // Actions: // * Checks - Obtain a list of checks and their current status diff --git a/config/docstrings.go b/config/docstrings.go index 9f7eccd60..263a93b02 100644 --- a/config/docstrings.go +++ b/config/docstrings.go @@ -61,7 +61,6 @@ var docStrings = map[string]string{ "plugin.choria.network.websocket_advertise": "The URL to advertise for websocket connections", "plugin.choria.network.client_port": "Port the Network Broker will accept client connections on", "plugin.choria.network.client_tls_force_required": "Force requiring/not requiring TLS for all clients", - "plugin.choria.network.client_anon_tls": "Now enabled using plugin.choria.network.client_signer_cert", "plugin.choria.network.peer_port": "Port used to communicate with other local cluster peers", "plugin.choria.network.peer_user": "Username to use when connecting to cluster peers", "plugin.choria.network.peer_password": "Password to use when connecting to cluster peers", diff --git a/go.mod b/go.mod index c28681fa7..ff41d92b0 100644 --- a/go.mod +++ b/go.mod @@ -15,14 +15,14 @@ require ( github.com/antonmedv/expr v1.9.0 github.com/awesome-gocui/gocui v1.1.0 github.com/brutella/hc v1.2.5 - github.com/choria-io/appbuilder v0.0.8 + github.com/choria-io/appbuilder v0.0.9 github.com/choria-io/fisk v0.1.3 github.com/cloudevents/sdk-go/v2 v2.10.1 github.com/fatih/color v1.13.0 github.com/ghodss/yaml v1.0.0 github.com/gofrs/uuid v4.2.0+incompatible github.com/golang-jwt/jwt v3.2.2+incompatible - github.com/golang-jwt/jwt/v4 v4.4.1 + github.com/golang-jwt/jwt/v4 v4.4.2 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.5.8 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 @@ -34,9 +34,9 @@ require ( github.com/miekg/pkcs11 v1.1.1 github.com/mitchellh/mapstructure v1.5.0 github.com/nats-io/jsm.go v0.0.34-0.20220610113917-5a299917dacd - github.com/nats-io/nats-server/v2 v2.8.5-0.20220607144903-0794eafa6f0e + github.com/nats-io/nats-server/v2 v2.8.5-0.20220621161222-4d6b56245072 github.com/nats-io/nats.go v1.16.1-0.20220610202224-dcbb65a13ee9 - github.com/nats-io/natscli v0.0.34-0.20220617135711-98725765760e + github.com/nats-io/natscli v0.0.34-0.20220620184400-e32bc5ed70af github.com/olekukonko/tablewriter v0.0.5 github.com/onsi/ginkgo/v2 v2.1.4 github.com/onsi/gomega v1.19.0 @@ -50,8 +50,8 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 github.com/xlab/tablewriter v0.0.0-20160610135559-80b567a11ad5 go.uber.org/atomic v1.9.0 - golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e - golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c + golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d + golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664 golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 golang.org/x/text v0.3.7 golang.org/x/tools v0.1.11 diff --git a/go.sum b/go.sum index 496f2ea89..60c720967 100644 --- a/go.sum +++ b/go.sum @@ -196,8 +196,8 @@ github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d8 github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= -github.com/choria-io/appbuilder v0.0.8 h1:QccxD1xAprQ4DxdpaXTEV4ZD6lFEXGLJYW5c9rhx8dA= -github.com/choria-io/appbuilder v0.0.8/go.mod h1:/r+5LsSjhC8LeuJFpyJ+qoKhgIJbG7Hu8BYyDxwEQv4= +github.com/choria-io/appbuilder v0.0.9 h1:X5PYu9SVKRbz3HRS//vWP3mrk3zY/fpwjgrpLft182A= +github.com/choria-io/appbuilder v0.0.9/go.mod h1:/r+5LsSjhC8LeuJFpyJ+qoKhgIJbG7Hu8BYyDxwEQv4= github.com/choria-io/fisk v0.1.3 h1:7qjmcnF1/JYh80jbuU/Vs81U0j0YFVrcPhh/d3iCcbI= github.com/choria-io/fisk v0.1.3/go.mod h1:S+NQ8qIofXvjz4zT4t69xRudzMYNfOG3uC0lOzGNjHA= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= @@ -505,8 +505,8 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.4.1 h1:pC5DB52sCeK48Wlb9oPcdhnjkz1TKt1D/P7WKJ0kUcQ= -github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= +github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= @@ -823,13 +823,14 @@ github.com/nats-io/jsm.go v0.0.34-0.20220610113917-5a299917dacd/go.mod h1:D++29Q github.com/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a h1:lem6QCvxR0Y28gth9P+wV2K/zYUUAkJ+55U8cpS0p5I= github.com/nats-io/jwt/v2 v2.2.1-0.20220330180145-442af02fd36a/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k= github.com/nats-io/nats-server/v2 v2.8.5-0.20220603052622-d836076443f5/go.mod h1:lZPG1sK+0r7tR7Q89EcpiuJnqF8y1PtYNC5Cz69RPko= -github.com/nats-io/nats-server/v2 v2.8.5-0.20220607144903-0794eafa6f0e h1:ykN9EumkogKYwkl49IBNM6rfcZeOLD2cTD9iPJQWMGs= github.com/nats-io/nats-server/v2 v2.8.5-0.20220607144903-0794eafa6f0e/go.mod h1:lZPG1sK+0r7tR7Q89EcpiuJnqF8y1PtYNC5Cz69RPko= +github.com/nats-io/nats-server/v2 v2.8.5-0.20220621161222-4d6b56245072 h1:PA8lRWjA89FxjlxYDPhdCGgOvk6IwdFh7yQ0uwLLrkQ= +github.com/nats-io/nats-server/v2 v2.8.5-0.20220621161222-4d6b56245072/go.mod h1:lZPG1sK+0r7tR7Q89EcpiuJnqF8y1PtYNC5Cz69RPko= github.com/nats-io/nats.go v1.16.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= github.com/nats-io/nats.go v1.16.1-0.20220610202224-dcbb65a13ee9 h1:gHTW4UDAOW6j9SA2DLE7aZg7cxVixYzLyestoU0ukyA= github.com/nats-io/nats.go v1.16.1-0.20220610202224-dcbb65a13ee9/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= -github.com/nats-io/natscli v0.0.34-0.20220617135711-98725765760e h1:kbhKe8BHVXvp7riRfWrWULSbifAqyKpqoEpr1cGNRpI= -github.com/nats-io/natscli v0.0.34-0.20220617135711-98725765760e/go.mod h1:tQ0JZd8AVaQLjhdBPX4w94CcpR8RSprrIlATCkPj4UM= +github.com/nats-io/natscli v0.0.34-0.20220620184400-e32bc5ed70af h1:i83pugcraHgB93SNfih3dImpioS6sSt9tWJRIy8t2HQ= +github.com/nats-io/natscli v0.0.34-0.20220620184400-e32bc5ed70af/go.mod h1:tQ0JZd8AVaQLjhdBPX4w94CcpR8RSprrIlATCkPj4UM= github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= @@ -1211,8 +1212,9 @@ golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM= golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1461,8 +1463,8 @@ golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c h1:aFV+BgZ4svzjfabn8ERpuB4JI4N6/rdy1iusx77G3oU= -golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664 h1:wEZYwx+kK+KlZ0hpvP2Ls1Xr4+RWnlzGFwPP0aiDjIU= +golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= diff --git a/internal/fs/ddl/cache/agent/aaa_signer.ddl b/internal/fs/ddl/cache/agent/aaa_signer.ddl index d434d5b0f..e74830db8 100644 --- a/internal/fs/ddl/cache/agent/aaa_signer.ddl +++ b/internal/fs/ddl/cache/agent/aaa_signer.ddl @@ -2,7 +2,7 @@ metadata :name => "aaa_signer", :description => "Request Signer for Choria AAA Service", :author => "R.I.Pienaar ", :license => "Apache-2.0", - :version => "0.25.1", + :version => "0.26.0", :url => "https://github.com/choria-io/aaasvc", :provider => "golang", :service => true, diff --git a/internal/fs/ddl/cache/agent/aaa_signer.json b/internal/fs/ddl/cache/agent/aaa_signer.json index f7176b527..cc6add0e4 100644 --- a/internal/fs/ddl/cache/agent/aaa_signer.json +++ b/internal/fs/ddl/cache/agent/aaa_signer.json @@ -5,7 +5,7 @@ "author": "R.I.Pienaar \u003crip@devco.net\u003e", "timeout": 10, "name": "aaa_signer", - "version": "0.25.1", + "version": "0.26.0", "url": "https://github.com/choria-io/aaasvc", "description": "Request Signer for Choria AAA Service", "provider": "golang", diff --git a/internal/fs/ddl/cache/agent/choria_provision.ddl b/internal/fs/ddl/cache/agent/choria_provision.ddl index 363c5b5ee..527404b48 100644 --- a/internal/fs/ddl/cache/agent/choria_provision.ddl +++ b/internal/fs/ddl/cache/agent/choria_provision.ddl @@ -2,7 +2,7 @@ metadata :name => "choria_provision", :description => "Choria Provisioner", :author => "R.I.Pienaar ", :license => "Apache-2.0", - :version => "0.25.1", + :version => "0.26.0", :url => "https://choria.io", :timeout => 20 diff --git a/internal/fs/ddl/cache/agent/choria_provision.json b/internal/fs/ddl/cache/agent/choria_provision.json index 5fa9b159f..2cdb0dd43 100644 --- a/internal/fs/ddl/cache/agent/choria_provision.json +++ b/internal/fs/ddl/cache/agent/choria_provision.json @@ -5,7 +5,7 @@ "description": "Choria Provisioner", "author": "R.I.Pienaar ", "license": "Apache-2.0", - "version": "0.25.1", + "version": "0.26.0", "url": "https://choria.io", "timeout": 20 }, diff --git a/internal/fs/ddl/cache/agent/choria_registry.ddl b/internal/fs/ddl/cache/agent/choria_registry.ddl index d2f16b7e2..b54c5cc55 100644 --- a/internal/fs/ddl/cache/agent/choria_registry.ddl +++ b/internal/fs/ddl/cache/agent/choria_registry.ddl @@ -2,7 +2,7 @@ metadata :name => "choria_registry", :description => "Choria Registry Service", :author => "rip@devco.net ", :license => "Apache-2.0", - :version => "0.25.1", + :version => "0.26.0", :url => "https://choria.io", :provider => "golang", :service => true, diff --git a/internal/fs/ddl/cache/agent/choria_registry.json b/internal/fs/ddl/cache/agent/choria_registry.json index 2a79d2c86..8cd0a057d 100644 --- a/internal/fs/ddl/cache/agent/choria_registry.json +++ b/internal/fs/ddl/cache/agent/choria_registry.json @@ -5,7 +5,7 @@ "author": "rip@devco.net \u003crip@devco.net\u003e", "timeout": 2, "name": "choria_registry", - "version": "0.25.1", + "version": "0.26.0", "url": "https://choria.io", "description": "Choria Registry Service", "provider": "golang", diff --git a/internal/fs/ddl/cache/agent/choria_util.ddl b/internal/fs/ddl/cache/agent/choria_util.ddl index 475b937b1..8bab5691b 100644 --- a/internal/fs/ddl/cache/agent/choria_util.ddl +++ b/internal/fs/ddl/cache/agent/choria_util.ddl @@ -2,7 +2,7 @@ metadata :name => "choria_util", :description => "Choria Utilities", :author => "R.I.Pienaar ", :license => "Apache-2.0", - :version => "0.25.1", + :version => "0.26.0", :url => "https://choria.io", :timeout => 2 diff --git a/internal/fs/ddl/cache/agent/choria_util.json b/internal/fs/ddl/cache/agent/choria_util.json index 35026bf9e..8cd63e424 100644 --- a/internal/fs/ddl/cache/agent/choria_util.json +++ b/internal/fs/ddl/cache/agent/choria_util.json @@ -5,7 +5,7 @@ "description": "Choria Utilities", "author": "R.I.Pienaar ", "license": "Apache-2.0", - "version": "0.25.1", + "version": "0.26.0", "url": "https://choria.io", "timeout": 2 }, diff --git a/internal/fs/ddl/cache/agent/rpcutil.ddl b/internal/fs/ddl/cache/agent/rpcutil.ddl index 92dfb775c..00e40114d 100644 --- a/internal/fs/ddl/cache/agent/rpcutil.ddl +++ b/internal/fs/ddl/cache/agent/rpcutil.ddl @@ -2,7 +2,7 @@ metadata :name => "rpcutil", :description => "Utility actions that expose information about the state of the running Server", :author => "R.I.Pienaar ", :license => "Apache-2.0", - :version => "0.25.1", + :version => "0.26.0", :url => "https://choria.io/", :timeout => 2 diff --git a/internal/fs/ddl/cache/agent/rpcutil.json b/internal/fs/ddl/cache/agent/rpcutil.json index efa37d2f5..3dff8d9b9 100644 --- a/internal/fs/ddl/cache/agent/rpcutil.json +++ b/internal/fs/ddl/cache/agent/rpcutil.json @@ -5,7 +5,7 @@ "description": "Utility actions that expose information about the state of the running Server", "author": "R.I.Pienaar ", "license": "Apache-2.0", - "version": "0.25.1", + "version": "0.26.0", "url": "https://choria.io/", "timeout": 2 }, diff --git a/internal/fs/ddl/cache/agent/scout.ddl b/internal/fs/ddl/cache/agent/scout.ddl index e7f5a972c..b7e6720cc 100644 --- a/internal/fs/ddl/cache/agent/scout.ddl +++ b/internal/fs/ddl/cache/agent/scout.ddl @@ -2,7 +2,7 @@ metadata :name => "scout", :description => "Choria Scout Agent Management API", :author => "R.I.Pienaar ", :license => "Apache-2.0", - :version => "0.25.1", + :version => "0.26.0", :url => "https://choria.io", :provider => "golang", :timeout => 5 diff --git a/internal/fs/ddl/cache/agent/scout.json b/internal/fs/ddl/cache/agent/scout.json index 1077b7b1b..6bb45737f 100644 --- a/internal/fs/ddl/cache/agent/scout.json +++ b/internal/fs/ddl/cache/agent/scout.json @@ -5,7 +5,7 @@ "author": "R.I.Pienaar ", "timeout": 5, "name": "scout", - "version": "0.25.1", + "version": "0.26.0", "url": "https://choria.io", "description": "Choria Scout Agent Management API", "provider": "golang" diff --git a/internal/fs/fs.go b/internal/fs/fs.go new file mode 100644 index 000000000..dee3010eb --- /dev/null +++ b/internal/fs/fs.go @@ -0,0 +1,17 @@ +// Copyright (c) 2022, R.I. Pienaar and the Choria Project contributors +// +// SPDX-License-Identifier: Apache-2.0 + +package fs + +import ( + "embed" +) + +//go:embed ddl +//go:embed client +//go:embed plugin +//go:embed misc +//go:embed completion +//go:embed cheats +var FS embed.FS diff --git a/internal/fs/fs_test.go b/internal/fs/fs_test.go new file mode 100644 index 000000000..713e5c99f --- /dev/null +++ b/internal/fs/fs_test.go @@ -0,0 +1,46 @@ +// Copyright (c) 2022, R.I. Pienaar and the Choria Project contributors +// +// SPDX-License-Identifier: Apache-2.0 + +package fs + +import ( + "encoding/json" + "io/fs" + "os" + "path/filepath" + "testing" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +func TestFS(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "Internal/FS") +} + +var _ = Describe("FS", func() { + Describe("JSON Files", func() { + It("Should have valid JSON files", func() { + err := filepath.Walk(".", func(path string, info fs.FileInfo, err error) error { + if err != nil { + return err + } + + if filepath.Ext(path) != ".json" { + return nil + } + + d := map[string]interface{}{} + jd, err := os.ReadFile(path) + if err != nil { + return err + } + + return json.Unmarshal(jd, &d) + }) + Expect(err).ToNot(HaveOccurred()) + }) + }) +}) diff --git a/internal/fs/templates.go b/internal/fs/templates.go index 22d582799..f81da239b 100644 --- a/internal/fs/templates.go +++ b/internal/fs/templates.go @@ -6,7 +6,6 @@ package fs import ( "bytes" - "embed" "strings" "text/template" @@ -17,14 +16,6 @@ import ( "github.com/choria-io/go-choria/internal/util" ) -//go:embed ddl -//go:embed client -//go:embed plugin -//go:embed misc -//go:embed completion -//go:embed cheats -var FS embed.FS - type consoleRender interface { RenderConsole() ([]byte, error) }