pigallery2: Extension configuration is broken
Describe the bug
The values from extension.config.getConfig() no longer reflect what is present in config.json, nor what is shown on the admin page.
Screenshots (optional)
This is present in my config.json:
"Extensions": {
"enabled": true,
"//[folder]": "Folder where the app stores all extensions. Individual extensions live in their own sub-folders.",
"folder": "/app/data/config/extensions",
"extensions": [
{
"enabled": true,
"//[path]": "Folder where the app stores all extensions. Individual extensions live in their own sub-folders.",
"path": "dk-extension",
"configs": {
"//[digikamShowCollection]": "DigiKam Directory Category",
"digikamShowCollection": "Public",
"//[digikamDbType]": "DigiKam Database Type (MySQL or SQLite)",
"digikamDbType": "MySQL",
"//[digikamSqliteDb]": "DigiKam SQLite DB filename",
"digikamSqliteDb": "/app/data/digikam/digikam.db",
"//[digikamMysqlHost]": "DigiKam MySQL DB hostname",
"digikamMysqlHost": "192.168.42.3",
"//[digikamMysqlPort]": "DigiKam MySQL DB port",
"digikamMysqlPort": 3306,
"//[digikamMysqlDb]": "DigiKam MySQL DB name",
"digikamMysqlDb": "digikam",
"//[digikamMysqlUser]": "DigiKam MySQL DB username",
"digikamMysqlUser": "dk_ro",
"//[digikamMysqlPassword]": "DigiKam MySQL DB password",
"digikamMysqlPassword": "redacted"
}
}
],
"//[cleanUpUnusedTables]": "Automatically removes all tables from the DB that are not used anymore.",
"cleanUpUnusedTables": true
},
This is what the admin page shows:
Server logs (optional)
When I have the extension dump the extension.config.getConfig() object, the state has the default values, not my real values:
pigallery2_dev | __state: {
pigallery2_dev | digikamShowCollection: {
pigallery2_dev | description: 'DigiKam Directory Category',
pigallery2_dev | type: 'string',
pigallery2_dev | value: 'Public',
pigallery2_dev | default: 'Public',
pigallery2_dev | hardDefault: 'Public'
pigallery2_dev | },
pigallery2_dev | digikamDbType: {
pigallery2_dev | tags: [Object],
pigallery2_dev | description: 'DigiKam Database Type (MySQL or SQLite)',
pigallery2_dev | type: 'string',
pigallery2_dev | value: 'MySQL',
pigallery2_dev | default: 'MySQL',
pigallery2_dev | hardDefault: 'MySQL'
pigallery2_dev | },
pigallery2_dev | digikamSqliteDb: {
pigallery2_dev | description: 'DigiKam SQLite DB filename',
pigallery2_dev | type: 'string',
pigallery2_dev | value: '/app/data/digikam/digikam.db',
pigallery2_dev | default: '/app/data/digikam/digikam.db',
pigallery2_dev | hardDefault: '/app/data/digikam/digikam.db'
pigallery2_dev | },
pigallery2_dev | digikamMysqlHost: {
pigallery2_dev | description: 'DigiKam MySQL DB hostname',
pigallery2_dev | type: 'string',
pigallery2_dev | value: 'localhost',
pigallery2_dev | default: 'localhost',
pigallery2_dev | hardDefault: 'localhost'
pigallery2_dev | },
pigallery2_dev | digikamMysqlPort: {
pigallery2_dev | description: 'DigiKam MySQL DB port',
pigallery2_dev | type: 'float',
pigallery2_dev | value: 3306,
pigallery2_dev | default: 3306,
pigallery2_dev | hardDefault: 3306
pigallery2_dev | },
pigallery2_dev | digikamMysqlDb: {
pigallery2_dev | description: 'DigiKam MySQL DB name',
pigallery2_dev | type: 'string',
pigallery2_dev | value: 'digikam',
pigallery2_dev | default: 'digikam',
pigallery2_dev | hardDefault: 'digikam'
pigallery2_dev | },
pigallery2_dev | digikamMysqlUser: {
pigallery2_dev | description: 'DigiKam MySQL DB username',
pigallery2_dev | type: 'string',
pigallery2_dev | value: 'digikam',
pigallery2_dev | default: 'digikam',
pigallery2_dev | hardDefault: 'digikam'
pigallery2_dev | },
pigallery2_dev | digikamMysqlPassword: {
pigallery2_dev | description: 'DigiKam MySQL DB password',
pigallery2_dev | type: 'string',
pigallery2_dev | value: 'password',
pigallery2_dev | default: 'password',
pigallery2_dev | hardDefault: 'password'
pigallery2_dev | }
pigallery2_dev | },
Environment (please complete the following information):
- OS: Server & browser: Ubuntu 22.04
- Browser: Firefox
Used app version: Compiled from source: github commit 3811fc3c
About this issue
- Original URL
- State: open
- Created 4 months ago
- Comments: 23 (23 by maintainers)
Commits related to this issue
- Fix extension loading #784, #847, fixes #855 — committed to bpatrik/pigallery2 by bpatrik 3 months ago
- Fixes for extension config loading (issue #847) * Actually add/remove extensions from `Config.Extensions.extensions` * Fix the file path where `ExtensionConfigTemplateLoader` looks for extensions * P... — committed to mblythe86/pigallery2 by mblythe86 3 months ago
- Merge pull request #885 from bpatrik/bugfix/ext-config Improve extansion loading #847 — committed to bpatrik/pigallery2 by bpatrik 3 months ago
- Improving extension loading. It mostly solves #847 and #784 — committed to bpatrik/pigallery2 by bpatrik 3 months ago
- Move extension config from array to map #847 #784 — committed to bpatrik/pigallery2 by bpatrik 2 months ago
- Init projectPath instead of extension manager for better path handling #847 #784 #897 — committed to bpatrik/pigallery2 by bpatrik 2 months ago
It looks like
loadExtensionListinExtensionManager.tsused to add any directories it found intoConfig.Extensions.extensions, but it doesn’t do that anymore. This feels like the root cause of these issues I mentioned:I haven’t examined the most recent refactor of the extension loading code, so maybe the process to discover new extensions happens somewhere else now?