3.0.0
Highlights
UI
Resoto now ships a new UI, which will make interacting with Resoto much easier and a lot more fun.
It comes with dashboards to visualize your resource data either from a time series metric, an aggregated search on the current snapshot or the result of a search. You can create your own dashboards and widgets to visualize your data in the way you want.
Explore all your cloud resources in a way you never did before. You can now search for resources and filter them by tags, attributes, and more. It allows you exploring your resource data in multiple ways - for example as a tree view.
Last but not least, it comes with a setup wizard that guides you through the initial configuration of Resoto.
AWS: All Details and Better Service Coverage
Resoto now supports all details of each supported resource. This means that you can now search resources by any attribute, tag, or any other detail of the resource.
As an example I picked the AWS application load balancer to show the complete structure of the data to expect:
See the full list of supported AWS resources in the AWS reference.
Cloud2SQL: Export Your Data into a SQL Database
It is now possible to leverage the power of our collectors and export your data into a SQL database. This allows you to use your data in any way you want. You can use it for reporting, analytics, or even machine learning.
We currently support the following list of database servers:
See the the someengineering/cloud2sql
GitHub repository for more details.
Simplified Installation
Kubernetes Helm Chart
Resoto's default installation method is Kubernetes, and we now provide a Helm chart to simplify this installation process.
You can find the chart in the someengineering/helm-charts
GitHub repository.
Installing Resoto on Kubernetes is now a helm install
command away.
AWS CDK
If you want to have full control over the CloudFormation stack that is created to install Resoto, you can use the AWS CDK construct that we provide. The construct definition can be found in the someengineering/resoto-cdk repository.
History of Changes
Version 3.0.0 of Resoto does not only offer the current snapshot data and aggregated time series data, it now also keeps track of changes to any of your resources. This not only allows you to see how a resource has changed over time, you can also use it to list the changes that happened in a specific time frame.
Think of an outage in your production cluster, and you want to know what happened in the last 2 hours before this outage. You can now use the history of changes to find out what has changed and how it has changed.
Find details and examples in the documentation of the history
command.
Extend the List of Commands via Plugins
Resoto has always been extensible via plugins for collect and cleanup. This release adds the option to programmatically add commands to Resoto. We use this feature to provide the aws
command line tool as part of the AWS collector plugin, which allows you to interact with AWS resources directly from the Resoto CLI.
See aws
Command for more information.
Client to Interact with Resoto
We also created a Python client as part of this release that allows you to interact with Resoto from your own applications. You can find the latest version of the client in this resotoclient-python repository.
If your programming language of choice is not Python, you can still use the Resoto API directly.
What's Changed
Features
46dde383
aws Make the list of called mutator APIs available (#1323)d8ea453a
Use ArangoDB 3.10.1 in docker-compose (#1321)8fedb029
add edge between glacier job and sns topic (#1314)e044fa88
resotocore Allow authorization message as first ws message (#1308)1744a092
resotolib Allow authorization header as cookie (#1305)2b5468b8
docker Bump Python 3.11 (#1300)bdfc0bdd
resotocore Allow . and / in format to reference the object (#1298)5700c092
plugins support deferred edges between kubernetes and AWS (#1293)c9fb9718
resotocore Maintain history of nodes and make it available via CLI/API (#1289)abde8621
resotoworker Expose list of loaded collectors (#1288)9a8e6947
fix: resotocore/requirements.txt to reduce vulnerabilities (#1286)aa0a1a2b
resotocore Improve TSDB proxy behaviour (#1284)7075ef5c
resotolib Customize model export and logging (#1278)0f3c7b13
Remove SQLAlchemy dependency (#1270)3ba0acaf
resotoworker Report errors that are happening during cleanup (#1258)b9e0b230
resotocore Maintain the list of workflow tasks (#1257)ae158cca
Add .cyjs info to cli output (#1256)37fd663b
resotoshell Allow ignoring updates from event stream. (#1252)2f9c5494
resotocore Config Service should allow testing updates using a dry run (#1250)6f23361e
aws Define ignorable errors (#1249)709b3602
docker set an explicit resh download directory (#1243)5fdfbe0d
Add progress and error for k8s, digialocean and gcp (#1246)b6dc2405
resotoshell Attach to the message_bus and print error messages (#1245)2d482a26
resotoshell Use the 1.2.0 version of the resotoclient (#1187)ba096520
aws Report errors and progress (#1240)fe1674f9
take care of users with no past password use (#1244)e9ebbb12
resotocore Add ability to send action info and progress messages (#1227)e1b3bb0a
resotocore Add API to send analytics events (#1222)3f20a02e
resotolib Add more log levels (#1198)373657f0
resotocore Allow custom commands (#1182)9ef77bd2
resotocore Allow serving ui test builds (#1215)9de40d38
resotocore clearer Jira custom command parameter names (#1212)98dadbdc
digitalocean fix cleanup in DigitalOcean plugin (#1213)6e53560b
resotocore Add Jira custom command (#1205)031d4b23
Bump protobuf from 4.21.1 to 4.21.6 in /resoto-bundle (#1195)4080f0cb
posthog Initial posthog plugin (#1207)95c03658
resotocore Add a tip of the day functionality (#1204)08347669
resotocore Add slack custom command (#1200)721af66a
resotocore Add basic auth support to http command (#1201)9438c42f
scarf Initial scarf collector (#1202)ec6b9026
aws Add methods to handle missing ARNs/IDs (#1171)4f1b4f59
aws Add Support for SNS (#1188)51da54b9
Bump oauthlib from 3.2.0 to 3.2.1 in /resoto-bundle (#1179)43dc8d05
docker add aws cli in dockerbase (#1184)bc6457b0
aws Add support for ECS (#1169)705350c7
rename service parameter of client (#1163)158c75ba
resotoworker Start the post-collection plugins automatically (#1162)5da59e5c
aws Collect Custom Domain Names (ApiGateway) (#1154)a05dfaf2
aws_k8s Support aws_k8s deferred edge collection (#1156)e9a9ccbb
remove api spec (#1157)b90d32c1
aws Add support for ApiGateway (#1147)38152420
aws Allow regional resources to be collected in parallel (#1140)b6f16ad5
fix(digitalocean): remove redundant connection args (#1152)7fbf8632
resotocore Build jupyterlite in docker (#1151)6af1e698
resotocore [fix[ Fix the broken resotocore workflow (#1146)f2013f9d
dockerhub add pagination support (#1145)82f449eb
resotocore Serve jupyterlite from resotocore (#1138)db4c5f7b
resotocore Show commands in sections (#1141)10c4b116
aws Add support for Glacier (#1130)5d6c0f57
dockerhub Docker Hub MVP collector (#1137)4bbe74dd
aws Collect Dedicated Hosts (EC2) (#1134)4ef05e70
aws Return all API's that get called during collect (#1129)0c187ea8
fix s3 tag collection bug (#1124)57764948
aws Normalise KMS Key IDs and add edges (#1097)324040b8
add tags to s3 resource instances (#1123)90a5378b
aws Collect tags and enable tagging methods for Route53 Hosted Zones (#1113)ba826260
collect tags (#1111)f1c58f1c
collect tags (#1110)750d9d74
collect tags (#1109)77c7b281
aws Collect ARN for s3 and others (#1106)b914fa0e
aws Use adaptive rate limiter (#1100)e0206180
add reference_kinds (#1098)b5ed518f
connect function to key (#1096)7a3a1e22
aws Do not overload AWS rate limits when collecting resources. (#1093)eec7f774
aws Add edge between ElastiCache Replication Group and KMS Key (#1090)e430173a
solve key mixup (#1095)2a9e8cf3
aws Add support for DynamoDB (#1069)f2f6fcfb
aws Collect Athena resources (#1088)2277dd02
connect snapshots and volumes to keys (#1087)98b77832
connect queue to key (#1086)f95b67bd
connect cluster to key (#1089)e5e888ed
resotocore Check the updated model not the update (#1084)cf68d481
aws Add support for KMS (#1083)b2958dfa
bump main to 2.5 (#1075)6a4d39dc
aws Use the new style collector (#1023)df0221af
Adds a serviceMonitor and its service to scrape resoto metrics (#1058)5b652f6a
aws Support Elasticache collection. (#1073)5d4db2e6
Incompatible attribute type (#1071)1beefaf4
aws Add redshift collection support (#1067)8323da64
aws Add edge from Beanstalk resource to SQS Queue (#1070)64f46888
aws Add support for SQS (#1066)5679d943
fix node direction (#1068)340fa446
aws [aws][feat] Add support for Elastic Beanstalk Application Environments and Resources (#1064)7a5d20b5
aws Add support for kinesis streams (#1065)c598a788
aws Enable new resources pre_cleanup/cleanup (#1063)79cb52df
aws Support s3 bucket deletion (#1062)568d6331
aws Support RDS deletion (#1061)fc959ba1
aws Support lambda deletion (#1060)38f91797
aws Support IAM resources deleteon (#1059)5746279c
aws Add support for Elastic Beanstalk Applications (#1052)a3efec71
aws Support ELB deletion (#1055)d27e53d0
aws Supprt ELB v2 deletion (#1056)c09d3a76
aws Support deletion of the EKS resources (#1054)fc814f66
aws Support route table deletion (#1051)2bc149c6
aws Support internet gateway deletion (#1050)e05b0a86
aws Delete ec2 nat gateways support (#1049)96f47d62
aws Support security groups deletion (#1048)25c3eada
aws Support subnet deletion (#1047)cc078de1
aws Support vpc endpoints deletion (#1046)7e55db7a
aws Support vpc peering connection deletion (#1045)f326114c
aws Support ec2 network interface deletion (#1043)1dc0321a
aws Support Vpc deletion (#1044)6923d126
aws Support Elastic Ip deletion (#1042)dae4c11a
aws Support network acl deletion (#1041)c74cc9f9
aws Support EC2 instance deletion (#1040)85bdae5c
aws Support ec2 keypair deletion (#1039)554fb497
aws Support snapshot deletion (#1038)505888dd
aws Add ec2 volumes deletion support (#1037)e90bd26d
aws Support deletion of Cloudwatch alarms (#1036)bbce886d
aws Support deletion of cf stack sets (#1035)fff2f4f6
aws Support CloudFormatonStack deletion (#1034)d4dae499
aws Support deletion in ASG (#1033)57b66e01
aws Tagging support (#1027)2d86a467
add Anja as codeowner (#1032)377b13ac
aws Add support for Lambda Functions (#992)e8250ec0
aws Add Iam Instance Profile (#1026)2604246c
aws Add lambda functions (#1022)f04cef97
resotolib Allow to define predecessor and successor (#1025)3b739598
aws Use stored account profile to access AWS (#1021)c466b55a
aws Add auth test before collect (#1013)892be14c
aws Integrate cloudwatch and use it for atime and mtime (#1019)a7166dc0
aws Add Elb (#1017)51ceeb4c
aws Add quota limits (#1015)41ecec4a
aws Add support for RDS (#1012)1c8c96ba
aws Add support for AWS profiles (#990)b35e6134
build arm64 docker images (#1002)45894393
aws Define remaining AWS EC2 resources (#1007)7ce70e2f
aws Add eks Cluster and Nodegroups (#1001)a8e3addf
aws Add cloud formation stack + stack set (#999)1c24bec9
Allow plural for month in duration strings (#1003)36a9a469
aws Add support for CloudWatch alarms (#1004)03ad8421
aws Add S3 Service (#998)8c97c503
Pin latest cattrs (#997)2d0ca35e
aws Add autoscaling AutoScalingGroup (#996)1ae165d0
aws Add elbv2 Alb + TargetGroup (#993)fccd3560
aws IAM: use get-account-authorization-details API call (#991)3e6d41f8
aws Add Route53 Service (#984)daa1ddf4
digitalocean Collect droplet pricing information (#985)319d4e67
digitalocean Collect volume pricing information (#986)549fd0c6
Bump paramiko 2.11.0 (#981)1b97981b
aws Add IAM resources (#971)a996618b
aws Implement Account Collector (#970)547d3378
random MVP Random Graph collector (#966)7725ec53
aws AWS collector improvement - genesis (#961)e7f7167e
Set CORS headers on all methods (#959)f0ede91b
resotolib Check model when it changes. (#962)1a5875db
load with proper type (#950)8dba8451
k8s Add deferred edges to digitalocean (#921)396205a3
k8s Migrate from v1 config (#933)c017e45d
k8s Add reference to configmap and secret from env (#932)c28fb7f8
resotometrics Turn metrics type into enum (#912)5a8d9601
k8s Order status conditions by time. (#926)9f32c242
k8s Add edge from node to pod (#924)829f363a
resotocore Improve nested path handling (#922)8fea1518
resotocore Send event when usage metrics are turned off (#918)bf3b286d
k8s Implement tag update, tag delete and resource delete (#920)7171c99e
k8s Configure access directly or via file (#911)68bab3c6
resotoworker Outer edge support - part 4/4 (#916)5f0e440b
k8s Define successors (#917)ba317bfe
resotocore Uml model shows dependant complex types (#913)ea63d677
resotocore Make EdgeType typed (#909)33a4649b
k8s Add collector test (#908)9097d085
resotocore Outer Edges collection support - Part 3/4: (#902)e1694a06
k8s Implement kuberenetes plugin (#903)c873cc96
resotolib Extend update check to distinguish between stable and pre-releases (#898)9f97b568
Remove trailing slash (#905)941eacae
Outer edge collection support - Part 2/4 (#892)25cb0493
resotolib Use 120 lines length for formatting (#896)ad42bd44
Add a package to install all resoto components at once (#890)fb7c25b1
resotolib Update check (#895)552feeb4
Initial DNS support (#894)973a9be7
resotocore format --json prettifies json (#893)3eab4e20
digitalocean Use Gb instead of Mb for DO instances (#861)99c09e74
resotoeventlog Genesis of resotoeventlog (#883)503b7369
resotocore Add typed ConfigId (#886)3909d5bd
fix: resotolib/requirements.txt to reduce vulnerabilities (#888)2d9bf577
resotocore Typed WorkerId (#885)9ad54b0f
resotocore Typed Ids: TaskId (#882)b009c2cc
resotocore Typed Ids: SubscriberId (#881)c5a4b2b9
resotocore Sort config based on model order (#875)6bb14fd2
resotocore Rename config option analytics_opt_out -> usage_metrics (#874)9bc4086e
resotocore Outer edge collection support - Part 1/4 (#877)d53b757d
resotocore Add sort properties to list output (#870)4379cbe3
resotocore Add separate sort and limit commands (#862)788a4ba9
digitalocean Rename Network -> VPC (#860)2ba8c2ce
Add possible successors to the model (#853)f2eb950b
aws Fetch S3 bucket tag sets in parallel (#851)fccbcae7
aws Allow fetching and updating of S3 bucket tags (#847)f1dcc0a9
resotoshell Load metadata from core (#833)be10bb46
pypy 3.9 and bump minimal version (#835)41e652a9
resotoshell select mode if stdin is not a tty (#831)b9b28d25
pypi Publish to PyPI (#832)0aad50b6
resotoshell Add aggregate completer (#825)2d0aa6ab
Use json as logging output format (#824)f6aea4a5
resotoshell Use resotoclient in resotoshell (#822)121709db
resotoshell Check resotocore returned filename for invalid path element (#821)2952fe93
resotoshell Better startup error messages (#820)140b06b9
resotoshell Improve search completion (#816)bdb1585e
resotoshell Add debug output containing the http error code on resh error (#819)1206f529
resotolib Send regular pings over websocket (#818)8fc56881
resotoshell Add autocomplete in interactive shell session (#811)c968f881
resotocore Export available command line arguments (#813)9f9c03d2
helm Simplify helm chart deployment (#805)7c808a7e
resotocore Improve analytics data (#800)90c69059
add more script documentation (#773)7cd260df
docker Add someengineering/resh container (#789)74533b31
Add documentation as release note section (#792)
Fixes
c5f3a886
resotocore Also show ActionErrors in log (#1332)fff3b40f
aws Handle Kinesis response correctly (#1330)6e8de0cf
resotolib Initialize empty config to (#1327)59a00d84
resotocore Turn on WebSocket pings (#1324)2c3e9d80
Allow worker and metrics to start webserver without TLS (#1320)2a95f9ca
resotocore Fix multipart response handling (#1315)dd7260e3
resotocore Support ArangoDB 3.10 (#1313)31be2170
resotocore Define correct progress order (#1310)589b0d2d
resotolib Compare origin to host in cookie based JWT auth (#1306)67529a8c
aws Support legacy interface (#1303)78045c68
aws Handle custom command arguments correctly (#1302)79b134a3
aws Coerce to correct parameter type (#1296)602d26f3
aws Ignore NoSuchEntity in get-account-password-policy (#1297)dbc713eb
aws Handle paginated results that are not lists correctly (#1299)bedaf8e8
resotocore Respect limit in with clause (#1292)fa18723f
resotoworker Allow multiple tag updates (#1287)1d248a03
aws Policy Document is json not string (#1283)b058ec43
docker Optimize swap space (#1281)b94c8578
docker Refactor to use resotopython:1.0.2 (#1280)1a42a3e3
aws Exception handling for individual resource kinds and rename of progress prefix (#1269)c234fd36
docker Rebase on resotopython base image and update to Node 16 actions (#1276)aa48ea01
resotocore Fix api doc description for config validation (#1268)21b9634a
resotocore Send progress messages when the progress has changed internally (#1264)677a78be
aws include set identifier in _keys() for RRSets (#1262)6e2fd0b9
No analytics during post-flight (#1263)bffcc49a
aws s3 objects are removed before the bucket is deleted (#1260)c19932d4
resotolib UnionType and NoneType in python 3.9 (#1261)00ff998f
aws Fix duplicate ids (#1259)4920e29c
aws Service quotas need to match the correct region (#1241)d7022d29
resotocore Make sure no analytics event is sent during test (#1242)cf7747d8
aws Fill atime for aws_iam_user correctly (#1239)6d6b4cb3
github Update use of deprecatedset-output
(#1238)805515b8
resotolib When searching for parent nodes only check them once (#1233)a67b4d7f
resotocore Update JupyterLite and add an explicit configuration flag. (#1232)c8638456
docker Create swap file for ARM builds (#1228)db7b0c62
resotolib return closest parent class (#1230)ed854254
resotocore Show meaningful error message if a task is already running. (#1223)013c766e
resotocore Display no more than 25 result items in Jira issue (#1220)47bacd8a
resotolib Make resotolib win32 compatible again (#1218)e694d011
Pin the version of requests-toolbelt (#1216)610adfc9
resotocore Show the correct kind for synthetic properties (#1193)40e875ab
scarf Correctly update headers (#1203)01b31428
resotoworker having no post collectors is not an error (#1206)4afd6e69
resotocore Fix Typo (#1199)f23be8f0
digitalocean Fix the snapshots regions collection (#1194)d0845b64
resotocore Fix api test setup (#1192)c1b9b056
docker fix typo in Dockerfile (#1190)3b61fff3
aws Correction of edges to IAM Roles (#1189)025b0daa
aws Fix EKS tagging (#1183)30c29b0d
aws Do not collect the default AwsDataCatalog (#1181)248e1f7b
aws Fix wrong default values for ApiGateway (#1180)b59bcd03
aws Map ctime and mtime for aws_sqs_queue correctly (#1170)67e50c85
resotocore Use a separate venv for jupyterlite build (#1167)ddf47490
aws Remove the ephemeral iam service quota class (#1161)b7c90d48
resotoshell Add argument to wait for resotocore to be online (#1155)877bfaa0
aws Improve error messages on exception (#1160)f2bf577a
docker Define container names in Compose YAML (#1158)487bd6ed
dockerV1 Fix typo in Dockerfile (#1150)6597377c
docker Set default COLORTERM if not set by client (#1149)6ec5b5a8
aws Fix wrong property name (#1142)89098906
resotocore Do not run jupyterlite build when in pypy (#1143)8fa2ad21
resotometrics Fix counter metrics (#1144)f0316714
dockerhub Fix copy error (#1139)c0837cf1
aws Get service quotas from region (#1136)4c9c4f5c
aws Revert "[plugins/aws][Fix Security] enable legacy retry mode (#1133)" (#1135)d5bc084d
aws enable legacy retry mode (#1133)90dd10b7
aws Revert ALB delete edge and fix some client code (#1128)1e5a93a7
aws Use the correct region in the client (#1127)8d62d72a
resotolib Resolve attrs types in model exporter (#1126)a7b9f30b
resotocore Use default timedelta representation (#1122)ef7e9530
resotocore Use unicode characters for text result (#1121)1aeb8781
aws alb -delete-> target_group (#1117)08d06283
aws Fix property names for network interfaces (#1112)c63511e6
aws Do not add the same VolumeType multiple times (#1114)6a216d6f
aws Migrate the db config on config class change (#1108)1e6dd832
aws Use sequential collection of service quotas (#1105)c16a8a48
aws Give up collecting a region in case of UnauthorizedException (#1104)6dc16968
aws Make DNSZone.id() part of DNSRecord and DNSRecordSet _keys() (#1101)68471511
aws Set correct DNS Record values (#1099)7c3bc98a
aws Correct name for quotas (#1094)6c01319e
aws Consistent use of service prefixes (#1085)726bb78d
resotoshell Wait for resotocore to be online when starting (#1091)8b1c5060
resotocore Improve model check (#1092)d8ec7add
resotolib Use the snapshot version of the cattrs (#1081)9575afae
kubernetes Fix directory name (#1080)ce2f4d63
aws Do not use new collector classes (#1074)3c04b6b2
aws Move pre-deletion to its own method (#1053)1efca2ad
aws Remove access_key_status and redundant base resource (#1031)143dc2ea
aws Update resource insert order and dependencies (#1029)337f7476
aws Fix delete relationships (#1028)762dd084
aws Make collector work (#1024)8a852c5f
resotolib Make config cache-friendly (#1018)a4f9d715
resotocore Do not normalize configuration values (#1020)15a16268
resotolib Fix broken tag updates (#1014)3888d5ca
aws Add missing kwargs (#1011)0fe4c101
aws Collector json handling (#1009)b0cc1178
resotocore DOT renderer should allow dashes (#1005)5be3f8f4
Do not export the new Aws* classes until done. (#1006)4670e3f5
docker Install git into the build env (#1000)808bbbaa
resotolib Fix the resource cleanup process (#995)0df34325
resotolib Fix tagging and attrs init (#994)7a4c3c6e
resotocore Ignore PyTz deprecation shim warnings (#989)d027d21f
example Remove post init from example collector (#988)ffd781d5
resotocore Migrate to zoneinfo (#982)f594079b
resotolib pass class to fields() (#987)eaa1d102
docker deactivate recursive chmod for ~resoto/ (#983)c59c6026
resotocore Allow for empty Discord alert message & move to embed description (#976)df04f7f5
resotolib Process actions messages in threadpool (#980)64a1476d
Remove Optional from fields that are not optional (#979)a6f8f937
resotolib Fix enum model export (#975)cd1b630a
resotolib Use str as enum value (#977)408546c2
k8s Use proper enumeration type. (#973)4a870462
resotocore Fix typo (#960)95d684c5
resotoshell Reserve autocomplete rows depending on terminal size (#958)4fa57f09
resotocore Fix outer edge merge handler (#956)3d3e9936
Fix the broken resotobundle job (#954)f6e913e8
resotoworker Add a timeout to post_collect collectors (#951)54019b1c
resotocore use proper datetime (#953)1c61b997
resotocore Redirect to UI (#952)9017ffc0
Fix release notes generator (#948)fde2141f
docker Only build amd images (#947)c8a176f6
resotoworker Improve type correctness in resotoworker (#944)81f59660
resotoshell Use correct url (#931)5723e1be
resotoworker Wrap collector plugins in try/except block (#929)e62206ef
resotometrics Fix metrics type (#928)43d15883
k8s Handle optional properties correctly (#930)b2faf778
resotoeventlog Update PyPI secret name (#927)b0374eee
digitalocean Type validation (#900)df85e18e
k8s Fix api client handling (#925)418c4886
resotoworker Retry sending of graph data (#923)c7eedf84
resotolib Units are computed correctly (#915)a726bdd6
resotocore Search and coerce for arrays and backticks (#914)7e389ab0
Update git repo check in setup_venv script (#910)3afe2041
resotocore Typed NodeId (#897)c31cfe5d
resotocore search navigation after tail (#891)66506060
resotocore Allow complex config override values (#887)a0a511d1
resotocore Make helm test more reliable (#884)80cc046e
resotocore package need to be marked as module (#880)0fdbfc74
resotocore Content disposition header for ca certificate (#879)55dfbf8f
ci Properly handle commits without associated PRs in release notes generator (#878)b79b14a8
docker Increase file limits for ArangoDB (#845)dc08974e
docker Use TLS setup for prometheus (#873)5b326a58
resotocore Make query parser more strict (#869)d9a26174
digitalocean Rename do -> digitalocean (#871)0db53ce0
resotocore Export model in correct format (#868)1b538d59
aws Add extra logging during EKS collection (#866)c47a422d
Build and push to PyPI on tag push (#865)080441d7
resotocore format also supports yaml which was not listed (#863)69749eff
Escape inputs to mute snyk (#859)449d79b9
resotoworker Better logging of cleanup (#858)21b60af4
resotolib Send action reply via object ref not local (#856)190d2fb0
resotolib Handle failure to save config after load gracefully (#854)5116ab15
resotolib Change severity of auto-recovering info and error messages (#848)923aaaf4
resotoshell handle wrong PSK (#846)0f7284b8
resotocore Handle connection errors more gracefully (#844)a09e53d8
resotolib Use debug instead of error log severity (#842)44a5a543
resotoshell Graceful exception handling (#843)9ffb7b2e
resotocore CLI info for all commands (#841)a4440ba0
Remove type ignores for pypy 3.8 (#836)60c92ceb
resotocore Revert bumping arangodb driver (#840)c7a71655
resotoshell shutdown the client thread (#839)95fd4d21
resotoshell Bump resotoclient (#838)ee17313f
resotoshell Fix sort suggestion and improve option information (#829)d59e0c72
plugins Remove _ from plugin package names (#830)22cba647
resotolib close fds more targeted during restart (#827)9cb6277a
resotocore Validate tarfile content (#823)f13e8ccd
Add .dccache to .gitignore (#817)860ec682
plugins Fix aws excluded accounts default and update gcp severity (#815)c494d909
resotoshell Compare config checksum instead of ctime/mtime (#814)a143f573
Define the UI by default in helm chart (#812)cce14442
resotocore Use resotoclient in tests (#809)dee2cd9a
docker Add cache version to cache key for easy invalidation (#810)e471bbb8
docker copy ArangoDB dump/restore client binaries (#806)1bcf470d
docker Add vi and nano to Docker images (#804)35467b76
resotolib Update TLS certificate files on disk after a certain time has passed (#803)32e39236
plugins Rename protect_snowflakes -> protector and make plugins restart on enable (#794)dff92da3
docker Allow docker-compose run resotoshell (#798)89f509a2
resotocore write ca bundle periodically to tmp (#797)c04aec04
resotocore No analytics in CI (#799)4248c8a5
resotocore Not should affect only the next simple term (#793)3ddd92a4
docker Use released 2.0.0 version in docker-compose (#787)
Documentation
2ec9caee
fix Undo grammar mistake (#1237)9f93c698
fix Added a few commas to enhance readability. (#1236)8a872180
fix typo in render_dot readme (#807)e048ae3b
Update rendering script docs (#796)f82e3ea3
Add the instruction for the graph rendering script (#795)6d51d8b0
fix Update all plugin READMEs (#790)
Chores
8ee01371
Bump 3.0.0 🥳 (#1333)1f65226e
Bump 3.0.0rc5 (#1328)d5a54eb3
Bump 3.0.0rc4 (#1322)fd77e902
Bump 3.0.0rc3 (#1317)541db3f0
Bump 3.0.0rc2 (#1312)fd33bdea
Bump 3.0.0rc1 (#1311)fe6fcba2
Bump 3.0.0a5 (#1309)a8ae7c37
Bump 3.0.0a4 (#1307)c930dc71
Bump 3.0.0a3 (#1304)80d0c78c
resotolib Bump cattrs 22.2.0 (#1301)0f954d3a
Bump 3.0.0a2 (#1295)9557ea7d
ci Fix cache keys (#1291)5bad4353
Bump 3.0.0a1 (#1290)16137a91
ci Update/tag respective stable version docs on tag (#1279)3b0a9ad1
Bump versions and fix setuptools (#1282)e02fcf84
resotoworker Update log message (#1274)b3125e79
ci Update API docs CI (#1267)ce92951d
aws Remove unused imports (#1265)c8fe8257
Bump libs (#1251)afa2929c
resotocore Adjust analytics events (#1229)76333af8
Bump libraries (#1226)e001a5f1
resotocore remove the readme in the jupyterlite folder (#1235)04a56238
ci Fix release notes generation (#1217)52604276
ci Correct link for release notes (#1214)d80e7262
ci Correct file path & link for release notes (#1211)88c1f3b9
ci Update path to helm chart yaml (#1210)62a08d45
Add a vscode launch and test config (#1209)88db68a5
ci Update CI for versioned docs (#1164)28b259b4
docker Stop building deprecated all-in-one image (#1191)88e64638
resotocore Add RESOTOCORE_ANALYTICS_OPT_OUT to docker-compose.yml (#1185)41104039
ci Fix release notes generator when no PR, bump helm-charts versions (#1148)0aa41e2f
k8s Remove chart from the main repository (#1120)d576679c
aws Log collect call runtime (#1132)ea443ea4
aws Enable sandbox testing not maintained by git (#1107)640e9f3e
resotolib Update resotoclient to 0.1.13 (#1125)d146f39d
Bump 3.0.0a0 (#1116)ae8ab890
ci Handle reversed component/group in release notes generator (#1078)15e2ef11
resotolib, resotoworker, digitalocean Refactor tag operations (#1016)a5d599d7
make baseresource kwargs only (#1008)da942de7
Use attrs instead of dataclasses (#972)b02016dc
plugins Fix the _volume_status_setter (#969)94cc4d99
resoto/plugins Fix the _instance_setter (#968)642de1ac
aws Add mypy support (#967)d03e976a
central place for json marshalling/unmarshalling (#965)16b04f29
utc formatted iso-8601 timestamps (#964)6e624b75
resotolib Cleanup utils (#963)2666acce
ci Create preleases for non-stable versions (#955)0f7dbe93
Move the plugin bundle into the main package bundle (#949)91f65458
Bump next release version. (#945)04399c38
k8s Update Readme. (#939)799911fa
Move duration parsing from resotocore to resotolib (#919)f26bd097
Bump versions - take #2 (#907)43ac6781
Bump versions (#906)bfcf62d0
resotoeventlog Remove experimental eventlog UI (#904)e2f7a33c
use 120 characters line length for everything (#899)b2736cfd
Update README (#867)637c4eea
Bump 2.3.0a0 (#864)d9304b19
docker Use nano as default editor in Docker 🤷 (#857)ca6ebbf3
aws Bump boto3 1.22.6 -> 1.22.11 (#855)2b2a9efd
Bump libs (#834)95137fe3
resotolib rename package resotolib.logging and resotolib.signal (#828)12dea089
Bump 2.2.0a0 (#826)9d571914
ci remove individual Docker images from generated release notes (#791)0a27e8a8
docker Update compose file for 2.0.0 (#788)edc9e22e
Bump 2.1.0a0 (#786)
Docker Images
somecr.io/someengineering/resotocore:3.0.0
somecr.io/someengineering/resotoworker:3.0.0
somecr.io/someengineering/resotoshell:3.0.0
somecr.io/someengineering/resotometrics:3.0.0