fix(fireflyiii): respect user-configured DB credentials when using mariadb_addon

When DB_CONNECTION is set to mariadb_addon, the script now checks if the user
has explicitly configured DB_USERNAME, DB_PASSWORD, or DB_DATABASE in addon
options. If set, those values are used instead of the MariaDB addon service
discovery credentials. This fixes authentication failures when the service
account doesn't have proper access.

Fixes: Firefly III access denied for user 'service' issue

Agent-Logs-Url: https://github.com/alexbelgium/hassio-addons/sessions/7cacda5b-d03e-47c5-b4fc-4cfb4ef2a3dc

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-20 09:09:20 +00:00
committed by GitHub
parent f607a1a0d6
commit 547f1214b4
3 changed files with 25 additions and 7 deletions

View File

@@ -1,6 +1,7 @@
## 6.5.9 (2026-03-28)
- Update to latest version from firefly-iii/firefly-iii (changelog : https://github.com/firefly-iii/firefly-iii/releases)
- Fix: mariadb_addon now respects user-configured DB_USERNAME, DB_PASSWORD, and DB_DATABASE options instead of always using service discovery credentials
## 6.5.6 (2026-03-21)
- Update to latest version from firefly-iii/firefly-iii (changelog : https://github.com/firefly-iii/firefly-iii/releases)

View File

@@ -51,9 +51,9 @@ Configurations can be done through the app webUI, except for the following optio
| `DB_CONNECTION` | list | `sqlite_internal` | Database type (sqlite_internal/mariadb_addon/mysql/pgsql) |
| `DB_HOST` | str | | Database host (for external databases) |
| `DB_PORT` | str | | Database port (for external databases) |
| `DB_DATABASE` | str | | Database name (for external databases) |
| `DB_USERNAME` | str | | Database username (for external databases) |
| `DB_PASSWORD` | str | | Database password (for external databases) |
| `DB_DATABASE` | str | | Database name (defaults to `firefly` for mariadb_addon) |
| `DB_USERNAME` | str | | Database username (overrides MariaDB addon service discovery if set) |
| `DB_PASSWORD` | str | | Database password (overrides MariaDB addon service discovery if set) |
| `Updates` | list | | Automatic update schedule (hourly/daily/weekly) |
| `silent` | bool | `true` | Silent mode - set to false for debug info |

View File

@@ -90,9 +90,26 @@ case $(bashio::config 'DB_CONNECTION') in
DB_CONNECTION=mysql
DB_HOST=$(bashio::services "mysql" "host")
DB_PORT=$(bashio::services "mysql" "port")
DB_DATABASE=firefly
DB_USERNAME=$(bashio::services "mysql" "username")
DB_PASSWORD=$(bashio::services "mysql" "password")
# Use user-configured database name if provided, otherwise default to 'firefly'
if bashio::config.has_value "DB_DATABASE"; then
DB_DATABASE=$(bashio::config "DB_DATABASE")
else
DB_DATABASE=firefly
fi
# Use user-configured credentials if provided, otherwise use service discovery
if bashio::config.has_value "DB_USERNAME"; then
DB_USERNAME=$(bashio::config "DB_USERNAME")
else
DB_USERNAME=$(bashio::services "mysql" "username")
fi
if bashio::config.has_value "DB_PASSWORD"; then
DB_PASSWORD=$(bashio::config "DB_PASSWORD")
else
DB_PASSWORD=$(bashio::services "mysql" "password")
fi
export DB_CONNECTION
export DB_HOST && bashio::log.blue "DB_HOST=$DB_HOST"
export DB_PORT && bashio::log.blue "DB_PORT=$DB_PORT"
@@ -110,7 +127,7 @@ case $(bashio::config 'DB_CONNECTION') in
--skip-ssl \
-u "${DB_USERNAME}" -p"${DB_PASSWORD}" \
-h "${DB_HOST}" -P "${DB_PORT}" \
-e "CREATE DATABASE IF NOT EXISTS \`firefly\`;"
-e "CREATE DATABASE IF NOT EXISTS \`${DB_DATABASE}\`;"
;;
# Use remote