Skip to content

Conversation

@joshtrichards
Copy link
Member

@joshtrichards joshtrichards commented Jun 26, 2024

Context: #3966

Summary

NC_ environment variable config.php overrides were not appearing in the output of occ config:list system nor occ config:system:get xxx. This was creating nearly impossible to diagnose configuration/ behavior discrepancies.

getValue() was already, of course, returning NC_ provided config values. But getKeys() was not due to (a) it having no handling for the envCache; (b) all values in envCache being saved under NC_ keys rather than their actual config keys (which needed additional handling to be merged with the non-NC_ keys).

  • Refactored readData() so that:
    • we aren't saving the entire environment in the envCache anymore (only those prefixed NC_)
    • we save NC_ provided config values in the envCache under their real configuration key
  • Refactored getValue() to accommodate readData() refactor
  • Fixed getKeys() to now return envCache keys as well in order to be consistent with getValue() (in turn, addressing the underlying bugs noted in the opening paragraph)

Result:

  • Environment provided config variables now appear in occ config:list system as expected.
  • Environment provided config variables now appear when queried via occ config:system:get blah
  • envCache is now free of non-NC related environment variables

TODO

  • Update/add tests (looking now)

Checklist

@joshtrichards joshtrichards added bug 3. to review Waiting for reviews ♻️ refactor Refactor code (not a bug fix, not a feature just refactoring) labels Jun 26, 2024
@joshtrichards joshtrichards added this to the Nextcloud 30 milestone Jun 26, 2024
@joshtrichards joshtrichards marked this pull request as ready for review June 26, 2024 14:45
@joshtrichards
Copy link
Member Author

/backport to stable29

@joshtrichards
Copy link
Member Author

/backport to stable28

@joshtrichards
Copy link
Member Author

Cypress test seems unrelated (but not the usual "just re-run it" Cypress test failure either).

@joshtrichards joshtrichards force-pushed the fix-nc-env-inclusion branch from 2102001 to 6ff093d Compare June 27, 2024 02:44
@joshtrichards joshtrichards force-pushed the fix-nc-env-inclusion branch 2 times, most recently from 91a5264 to da697ea Compare June 27, 2024 15:06
NC_ env variable overrides were not appearing in
the output of `occ config:list system` nor `occ
config:system:get xxx`. This was creating nearly
impossible to diagnose configuration/ behavior
disprepancies.

- Refactored readData() so that we aren't saving
  the entire environment in the envCache anymore
  (only those prefixed "NC_") and so that we save
  NC_ provided config values under their real
  key.
- Refactored getValue() to accommodate readData()
  refactor
- Fixed getKeys() to properly return
  envCache keys too

Environment provided config variables now appear
in `occ config:list system` as expected.

Environment provided config variables now appear
when queried via `occ config:system:get KEY`

envCache is now free of non-NC stuff.

Signed-off-by: Josh Richards <[email protected]>
@joshtrichards joshtrichards force-pushed the fix-nc-env-inclusion branch from da697ea to 34a9e48 Compare July 8, 2024 20:42
This was referenced Jul 30, 2024
This was referenced Aug 5, 2024
@skjnldsv skjnldsv mentioned this pull request Aug 13, 2024
@skjnldsv skjnldsv removed this from the Nextcloud 30 milestone Aug 14, 2024
@skjnldsv skjnldsv added this to the Nextcloud 31 milestone Aug 14, 2024
@joshtrichards joshtrichards removed the ♻️ refactor Refactor code (not a bug fix, not a feature just refactoring) label Aug 19, 2024
@icewind1991
Copy link
Member

/backport to stable30

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review Waiting for reviews bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Overridden config.php variables (via NC_* are not reflected in occ config:system:get command

5 participants