All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- If a contact point already exits it will be updated. Previous behaviour was to only to create which failed for existing contact points.
- enable aws s3 role assumption (use default providers chain) by @DerekTBrown in #245
- chore: organize s3 utils by @DerekTBrown in #245
- add missing argument http_get_headers #242 #243
- add contact points and notifcation policy backup functionalities by @ysde in #238
- added http headers to get_grafana_version request by @Mar8x in #239
- added py3-packaging to slim docker image, reported by @tasiotas in #241 🎉
- verify-ssl: only convert if string contains bool by @chriz-active in #234
- Validate version using regex in get_grafana_version by @acjohnson in #232
- fix versions/dashboard_versions hiccup by @chriz-active in #229
- hide_version-config: add version as config/env var by @chriz-active in #228
- Expose BACKUP_FILE_FORMAT to env by @vindex10 in #223
- add slug suffix for uid dashboards by @vindex10 in #222
- allow disabling auth check by @vindex10 in #221
- [cicd] github-actions Python 2.7 support is no longer available #230
- import StringIO and pass data through StringIO read by @Keimille in #173
- Pass verify_ssl to get_grafana_version method by @yg265 in #207
- Update alert-rules key to match convention set in cli.py by @relaytheurgency in #208
- add the x-disable-provenance header for create_alert_rule by @yg265 in #211
- Perform upsert of alert rules by @mt3593 in #217
- Only support alert rules if grafana is above version 9.4.0 by @mt3593 in #205
- Add alert rules to backup by @mt3593 in #201
- Fix restoring library elements that have more than one folder by @antifuchs in #199
- Fixed GCP bucket upload example in readme by @IldarGalikov in #200
- Create a more compact docker image (remove dev packages from image) by @lavirott in #196
- Backup, restore, and delete teams, team-members, and library-elements by @nileger in #181
- #190 InfluxDB Support
- #184 (feat): enable/disable api health check not supported by amazon managed grafana
- #176 fix
folder_uid
when dashboard has no folder #175 - #183 Change the docker image in README.md examples
- #186 Require only necessary permissions when saving backup to GCS bucket
- #174 Fixed ValueError when auth not properly configured
- #158 added uid_support to datasource backups
- 42755ef moved pause and unpause alerts to tools subcommand
- af51467 fixes #140 and ensures folder_permissions are restored
- 30a937f removed unused restore_from_dir function
- Publish to PyPi
- cli changes are coming in 1.2.x which will introduce breaking arg parsing changes
- #150 Option to pause and unpause alerts
- #140 Add folder permissions backup
- #148 Option to save and restore snapshots
- #148 Option to save dashboard versions (restore isn't really possible with the API)
- #148 Option to save and restore annotations
- c6b6f68 Create python-publish.yml
- #100 GCS support
- #92 better error message when the user specifies a bad S3 key
- #135 Update main organization instead of creating a new one
- #133 Creating the docker container without these packages didn't work
- #139 windows env var fix
- #124 fixed #123
- #121 multi arch docker support
- #127 add azure storage support
- #123 fixed Crash on save_folders.py
- #94 Key Error in api_checks.py (ensure compat with hide_version Grafana setting)
- #117 replace api version check with specific feature checks
- #104 added python2 support to restore functions
- #105 add configuration attribute to set backup file name
- #112 changed restore_functions to ordered dict
- #113 [Fixed] Dashboards with same name in different folders not restored
- #110 remove useless cleanup method within tempfile
- #102 add AWS_ENDPOINT_URL config option
- #57 Backup users, organizations
- #83 Fix tarfile options for python2
- #64 Remove empty folders when backup file (.tar.gz) created.
- #70 Fix parameters for get_folder_id_from_old_folder_url
- #74 Fixed Bug folders.txt does not contain all folders
- #75 Introduces the settings option client_cert
- #76 require api checks to succeed before save or restore
- #78 fixed issue #77 TypeError: health_check
- boto3 added to package dependencies
- environment variables and configuration for native AWS S3 support
- s3_upload.py
- s3_download.py
- add setup.py
- add Makefile (docker build)
- add grafanaSettings.json
- add constants.py
- add archive.py
- rename src directory -> grafana_backup
- refactor Dockerfile
- switched to alpine base
- use CMD instead of ENTRYPOINT
- run as non-root user
- README.md updates
- implemented cli "console script" using docopt
- added "save" command
- added "restore" command
- refactored variable passing
- removed global variable passing in favor of positional arguments
- all code lives inside functions now, no need for globalized code
- refactored grafanaSettings module
- grafanaSettings can now be parameterized via an external json config file (~/.grafana-backup.json)
- refactored backup/restore shell scripts
- individual components can be backed up and restored using console_script
- archiving of backup can now be skipped using --no-archive
- delete Pipenv
- delete docker_entry.sh
- delete requirements.txt
0.1.0 - 2019-05-22
Initial release, tentative.
- this
CHANGELOG.md
requirements.txt
andPipfile
for better packaging hygiene
- reorganize code layout, move all python into
src/
- update README.md to reflect changes
- delete boilerplate
restore_SOMETHING.sh
scripts