# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.2.2] ### Changed * Split the `collect` command into `collect` and `send` commands * Allowed piping `collect` output into `send` to allow intermediate data modification ## [0.2.1] ### Added * Added defaults to secret store * Added secret store support to `update` command * Added `pkg/bmc` package to handle credentials internal ### Changed * Changed behavior of `--username` and `--password` flags to partial override credentials * Changed CLI to have more consistent flags ## [0.2.0] ### Added * Added `secrets` command for managing secrets with `SecretStore` * Added `--username` and `--password` flags to `collect` command * Added short option flags for `--username` and `--password` flags * Added `--secrets-file` flag to `crawl` command * Added static secrets store as fallback * Added function to remove secrets from secrets store * Added secrets lookup to `collect` command ### Changed * Changed short options for secret store * Changed details to error messages ### Fixed * Fixed `golangci-lint` install command * Fixed issues from running `golangci-lint` ### Updated * Updated `golangci-lint` version * Updated logging to be use consistentn JSON formatting ## [0.1.10] ### Fixed * Fixed README documentation ## [0.1.9] ### Added * Added collection of data return from `CollectInventory()` output * Added initial `SecretStore` interface with `StaticStore` and `LocalStore` implementations for credentials management * Added `--insecure` flag to allow skipping TLS verification for firmware updates ### Fixed * Fixed dependabot security issues related to `crypto` package * Fixed URL param not being set for `UpdateFirmwareRemote()` * Fixed links in README documentation ### Changes * Improved firmware updating functionality and added BMC identification support * Improved Redfish service connection handling and update status retrieval * Moved internal implementations to `pkg` and updated references * Updated `update` command to use `gofish` package internally ## [0.1.8] * Updated build workflow and added container build script * Exported `cobra` commands for external use * Fixed AMD64 microcode version in attestation ## [0.1.7] * Refactor how versioning information is indicated in the build and source * Updated Go version ## [0.1.6] ### Added * Added functionality to fetch BMC manager data and include in `crawler`'s output * Added IP to manager's ethernet interfaces * Added check to exclude ethernet interface without IPs * Added MACAddr to manager's output * Added function to wait for emulator to start in tests * Added API tests * Added revision to `go install` commands * Added PKGBUILD to install `magellan` as binary on Arch Linux * Added `version` command and corresponding implementation ### Fixed * Fixed issue writing output to file with `--output` flag * Fixed hook to output correct filename with `goreleaser` * Fixed typo in Makefile * Fixed releaser .PHONY in Makefile * Fixed issue with tests not working ### Updated * Updated `crawl` to fetch and include BMC `Manager` data in output * Updated and refactored `util` package * Updated README.md documentation * Updated `goreleaser` to v2 (v2.3.2) * Updated go dependencies * Updated tests to fix some issues * Updated .gitignore file * Updated Makefile to include `magellan.1` rule * Updated Makefile to build with ldflags ### Changed * Changed `crawler`'s internal function names * Changed `test` rule in Makefile to use specific tests ### Removed * Removed extra unused `gofish` imports * Removed internal version implementation ## [0.1.5] ### Added * Added Init() to Client interface * Added temporary solution for creating new clients ### Changed * Changed interface func from GetClient() to GetInternalClient() ### Fixed * Fixed field tag in crawler * Fixed panic when setting --cacert from invalid client ### Updated * Updated warning message and changed SMD client to use pointer receivers ### Miscellaneous * Merge pull request #55 from davidallendj/cacert-hotfix ## [0.1.4] ### Added * Added response body into error messages * Added schema version to output ### Changed * Changed collect messages to using JSON format ### Miscellaneous * Merge branch 'main' into minor-changes * Merge pull request #50 from davidallendj/container-build * Merge pull request #51 from davidallendj/minor-changes * Merge pull request #52 from davidallendj/minor-changes * Merge pull request #53 from davidallendj/minor-changes * Merge pull request #54 from davidallendj/update-readme * Rearranged collect error to only show when not force updating * Updated README.md and fixed outdated info * magellan.sh: remove unused build helper function * release: prefix all version tags with "v" ## [0.1.3] ### Fixed * Fixed automatic builds with docker container * Fixed deprecation warning in goreleaser * Fixed permissions in workflow * Fixed typo in workflow ## [0.1.2] ### Fixed * Fixed automatic builds with docker container * Fixed typo in workflow ## [0.1.1] ### Added * Added container building working * Added more information to crawler output ### Removed * Removed copying script in container ### Miscellaneous * Merge pull request #49 from davidallendj/add-types ## [0.1.0] ### Added * Added TODO comments to tests and other minor change * Added URL sanitization for SMD host and moved auth from util * Added check for output directory for collect * Added disclaimer about incompatibility with SMD * Added flag to show cache info with list command and other minor changes ### Changed * Changed 'docker' rule to 'container' * Changed build rule and added release rule to Makefile * Changed firmware.* back to firmware-* * Changed host to hostname being stored in cache * Changed how arguments are passed to update command * Changed how based URL is derived in update functions * Changed order of adding default ports to add host correctly * Changed saving host to include scheme for collect * Changed short help message for root command * Changed showing target host to use debug instead of verbose flag * Changed transfer-protocol flag to scheme to match other commands * Changed the username/password flag names ### Fixed * Fixed '--subnet' flag not adding hosts to scan * Fixed crawl command help string * Fixed error message format for list command * Fixed getting ethernet interfaces in CollectEthernetInterfaces() * Fixed imports and removed unused query params * Fixed issue with collect requests and other minor changes * Fixed issue with host string and added internal url package * Fixed lint errors * Fixed passing the correct argument in Sanitize() * Fixed port not being added to probing request * Fixed root persistent flags not binding correctly * Fixed scan not probing the host correctly * Fixed small issue with command string * Fixed typo errors in changelog and readme * Fixed viper flag binding in collect cmd ### Removed * Removed 'dora' API * Removed commented out code * Removed extra print statement * Removed files from util * Removed magellan's internal logger for zerolog * Removed storage file * Removed unused code, rename vars, and changed output to use hive partitioning strategy * Removed unused functions in collect.go * Removed unused port and clarified default in README.md * Removed unused query params * Removed unused updating code and bmclib dependency and other minor changes * Removed unused variables in client package ### Updated * Updated 'cmd' package * Updated .gitignore * Updated Makefile to include GOPATH in some targets * Updated README.md with features section * Updated example config * Updated go dependencies * Updated tests to reflect new API changes ### Renamed * Renamed smd package to client * Renamed struct * Renamed vars and switched to use zerolog ### Miscellaneous * Minor changes and improvements * Minor changes to fix lint errors * Minor changes to tests * More minor changes * Moved SMD-related API to pkg * Refactored how clients work to reduce hard-coded dependencies * Refactored/reorganized utils * Reformatted scan help message * Separated auth from util and fixed help strings ## [0.0.20] * Updated workflows to publish container ## [0.0.19] ### Added * Added 'docs' rule to Makefile * Added initial round of comments for API documentation * Added initial tests for API and compatibiilty coverage * Added more API documentation * Added more documentation and changed param names ### Changed * Changed Dockerfile to use binary instead of script ### Fixed * Fixed issue with required param * Fixed small typo * Fixed syntax error with command description ### Removed * Removed unused code that used bmclib ### Updated * Updated README to include information about building on Debian * Updated go dependencies removing bmclib * Updated dependencies ### Miscellaneous Minor changes to README.md Tidied up CLI flag names ## [0.0.18] ### Fixed * Fixed formatting error in workflow ## [0.0.17] * Addressed x/net dependabot issue ## [0.0.16] * Updated attestation path ## [0.0.15] ### Removed * Removed unnecessary attestation support script ## [0.0.14] * Updated to goreleaser v2 ## [0.0.13] * Updated to goreleaser v2 ## [0.0.12] * Removed attestation of non-existent container ## [0.0.11] ### Removed * Removed docker container from goreleaser to address build errors ## [0.0.10] * Updated .goreleaser.yaml ## [0.0.9] * Included Checkout in workflow ## [0.0.8] ## [0.0.7] ## [0.0.6] ### Added * Adding dev container to standardize Linux build * Merge pull request #1 from davidallendj/rehome ## [0.0.5] - 2023-11-02 ### Added * Ability to update firmware * Refactored connection handling for faster scanning * Updated to reflect home at github.com/davidallendj * Updated to reflect ghcr.io as container home ## [Unreleased] ## [0.0.1] - 2023-09-14 ### Added * Ability to scan subnets for devices * Ability to store results in a database * Ability to generate an inventory from walking Redfish commands * Ability to send inventory information to SMD