{"ref":"artifact:abap2ui5-addons-config-management","page":"/artifacts/abap2ui5-addons-config-management","json":"/artifacts/abap2ui5-addons-config-management.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"abap2ui5-addons-config-management","name":"config-management","artifact_type":"app","ecosystem":"abap","flavors":[{"key":"standard-abap","source":{"url":"https://github.com/abap2ui5-addons/config-management","title":"abap2UI5-addons/config-management — README","checked":"2026-10-17","quote":"Standard ABAP 7.50 or higher"}}],"domain":"operations-and-runtime","secondary_domains":["ui-and-frontend-bridge"],"origin_ring":"community-org","use_as":"dependency","description":{"one_line":"Keeps the theme, UI5 bootstrap source, custom CSS and Content-Security-Policy of an [abap2UI5](artifact:abap2ui5-abap2ui5) page in database tables instead of in code, with a popup app to edit them.","short":"Theme, CSS and CSP settings of abap2UI5 pages kept in tables","what_it_solves":"The settings of an abap2UI5 page usually live in code, so changing the theme or the UI5 bootstrap source means editing the HTTP handler or the user exit. config-management keeps `THEME`, `APP_TITLE`, `UI5_SRC`, `DEBUG_MODE`, `STYLES_CSS` and `CSP_POLICY` in the tables `Z2UI5_CONFIG` and `Z2UI5_THEMES`, reads them through `z2ui5_cl_config_service` with an in-memory cache, and ships the popup app `z2ui5_cl_app_icf_config` to edit them; `UI5_SRC` and `CSP_POLICY` are system-wide and only a master user holding the authorization object `Z2UI5_CONF` may change them. It does not hook itself into the framework: the README asks the user to implement `z2ui5_if_ui5_exit` in a class of their own and apply the stored values in `set_config_http_get`, and a field with nothing stored keeps the abap2UI5 default. It installs with [abapGit](artifact:abapgit-abapgit) next to [abap2UI5](artifact:abap2ui5-abap2ui5) 1.145.0 or later and is written for Standard ABAP 7.50.","when_not_to_use":"`APP_TITLE` is not applied by the exit: the `title` field was removed from `z2ui5_if_ui5_exit=>ty_s_http_config` in abap2UI5 1.145.0, so an app that wants it as its browser tab title sets it while it runs. The live theme preview runs the frontend action `THEMING` / `setTheme` and needs UI5 1.118 or later; on an older release a saved theme applies with the next page load. The code is written for ABAP 7.50 and the README states there is no downported 7.02 version, no 702 branch and no workflow that builds one.","to_build_on_it":"The contract with users is the exit class printed in the README, and AGENTS.md states that a change to what `z2ui5_cl_config_service` offers is checked against that example and updated in the same pull request. The name and shape of `z2ui5_cl_app_icf_config` are fixed by abap2UI5's start page, which opens `Z2UI5_CL_APP_ICF_CONFIG` by name through its `c_class_icf_config` constant, so a rename, a mandatory constructor parameter or dropping `z2ui5_if_app` turns that button into a message that the app is not installed. `npm run check` runs what CI runs: abaplint at `v750`, with the abap2UI5 dependency deliberately unpinned so the check also notices an upstream rename."},"links":{"repo":"https://github.com/abap2UI5-addons/config-management"},"type_properties":{"distribution":{"value":["abapgit"],"sources":[{"url":"https://github.com/abap2ui5-addons/config-management","title":"abap2UI5-addons/config-management — README","checked":"2026-10-17","quote":"addons and apps for [abap2UI5](https://github.com/abap2UI5/abap2UI5), installed with [abapGit](https://abapgit.org)."}]}},"maintainers":["actor:abap2ui5-addons"],"provides":[{"capability":"capability:configuration","what_it_does":"Holds an abap2UI5 installation's page settings in database tables read at runtime through a cached service, globally or per user, so a theme, a bootstrap source, custom CSS or a Content-Security-Policy changes without a change to the HTTP handler code.","sources":[{"url":"https://github.com/abap2ui5-addons/config-management","title":"abap2UI5-addons/config-management — README","checked":"2026-10-17","quote":"Eliminates need to modify HTTP handler code for configuration changes"},{"url":"https://github.com/abap2ui5-addons/config-management","title":"abap2UI5-addons/config-management — README","checked":"2026-10-17","quote":"Enables per-user customization (themes, custom CSS, etc.)"},{"url":"https://github.com/abap2ui5-addons/config-management","title":"abap2UI5-addons/config-management — README","checked":"2026-10-17","quote":"Central service for managing application configurations"}]}],"requires":[{"ref":"artifact:abap2ui5-abap2ui5","for":"The framework it extends: it stores the settings of the abap2UI5 page, and the user exit `z2ui5_if_ui5_exit` applies them to every page abap2UI5 serves. The README names release 1.145.0 or later.","requirement":"required","basis":"binding","role":"framework","sources":[{"url":"https://raw.githubusercontent.com/abap2UI5-addons/config-management/main/AGENTS.md","title":"abap2UI5-addons/config-management — AGENTS.md","checked":"2026-10-17","quote":"[abap2UI5](https://github.com/abap2UI5/abap2UI5), which it needs at runtime."},{"url":"https://github.com/abap2ui5-addons/config-management","title":"abap2UI5-addons/config-management — README","checked":"2026-10-17","quote":"[abap2UI5](https://github.com/abap2UI5/abap2UI5) 1.145.0 or later"}]},{"ref":"artifact:abapgit-abapgit","for":"Pulling the repository into a system: the README's installation steps install abap2UI5 first and then this repository with abapGit.","requirement":"required","basis":"binding","role":"installation","sources":[{"url":"https://github.com/abap2ui5-addons/config-management","title":"abap2UI5-addons/config-management — README","checked":"2026-10-17","quote":"addons and apps for [abap2UI5](https://github.com/abap2UI5/abap2UI5), installed with [abapGit](https://abapgit.org)."}]}],"interfaces":[{"key":"config-app","kind":"ui","direction":"in","for":"The configuration popup, started like any abap2UI5 app with `?app_start=z2ui5_cl_app_icf_config` or from the abap2UI5 start page, with form-based editing of every parameter and admin-only fields hidden by role.","sources":[{"url":"https://github.com/abap2ui5-addons/config-management","title":"abap2UI5-addons/config-management — README","checked":"2026-10-17","quote":"**z2ui5_cl_app_icf_config**: The configuration popup"}]},{"key":"config-service","kind":"api","direction":"in","for":"`z2ui5_cl_config_service`, the ABAP class the user's own exit class calls to read a stored value: `get_config` for a key, `get_current_theme` for the theme.","sources":[{"url":"https://github.com/abap2ui5-addons/config-management","title":"abap2UI5-addons/config-management — README","checked":"2026-10-17","quote":"**z2ui5_cl_config_service**: Central service for managing application configurations"}]}],"provenance":{"discovered_via":[{"source":"source:github"}],"first_seen":"2026-10-17"},"drafted_with_ai":true,"contributors":["actor:kartefact","actor:oblomov-dev"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"4 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":"SAP_BASIS 750 and up, in its abaplint config: includes every maintained line to 816"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"good","evidence":"abap-standard green, 2026-10-18"}],"practice":[{"label":"Tests","tier":"poor","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 8 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":0,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","npm":"not published under this name","stars":0,"forks":0,"open_issues":1,"archived":false,"pushed_at":"2026-10-18","license_spdx":"MIT","org_owned":true,"default_branch":"main","created_at":"2025-07-16T12:02:54Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":1,"other_ci":false,"readme_bytes":8409,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2025-07-16","last_commit":"2026-10-18","commits":29,"contributors":4,"ci_status":"success","ci_run_at":"2026-10-18","ci_workflow":"abap-standard","ci_event":"push","readme_path":"README.md","readme_sha":"c7d0ab144e8da789198d1bd6b67c8d03dbb44f18","repo_read":"2026-10-24","abap_syntax":{"repo":"abap2UI5-addons/config-management","file":"abaplint.jsonc","url":"https://github.com/abap2UI5-addons/config-management/blob/HEAD/abaplint.jsonc","version":"v750","floor":"750","checked":"2026-10-26"}},"edges":{"maintainers":[{"ref":"actor:abap2ui5-addons","name":"abap2UI5-addons","json":"/actors/abap2ui5-addons.json"}],"contributors":[{"ref":"actor:kartefact","name":"Karthikeyan Ravikumar","json":"/actors/kartefact.json"},{"ref":"actor:oblomov-dev","name":"oblomov-dev","json":"/actors/oblomov-dev.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_on_to":{"ref":"artifact:abap2ui5-abap2ui5","name":"abap2UI5","json":"/artifacts/abap2ui5-abap2ui5.json"},"add_ons":[],"answered_through_parts":[]}}