Skip to main content

3.0.0

Highlights

UI

Resoto now ships a new UI, which will make interacting with Resoto much easier and a lot more fun.

New UI

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.

Dashboards

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.

Tree view

Last but not least, it comes with a setup wizard that guides you through the initial configuration of Resoto.

Setup wizard

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:

AWS ALB

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 deprecated set-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