docs(preferences): user-facing docs, changelog & e2e tests (IFC-2737)#9958
Open
pa-lem wants to merge 1 commit into
Open
docs(preferences): user-facing docs, changelog & e2e tests (IFC-2737)#9958pa-lem wants to merge 1 commit into
pa-lem wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
No issues found across 7 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would auto-approve. Adds user-facing docs, changelog, and e2e tests for preferences; no behavioral changes or tradeoffs needing human judgment.
Re-trigger cubic
Contributor
There was a problem hiding this comment.
0 issues found across 7 files (changes from recent commits).
Shadow auto-approve: would auto-approve. Adds docs, changelog, e2e tests, and minor refactors. No behavior expansion, operational changes, or new public contracts. Bounded and clearly beneficial; Cubic verified implementation.
Re-trigger cubic
pa-lem
force-pushed
the
ifc-2737-preferences-docs
branch
from
July 20, 2026 12:55
142e97b to
89cdbbc
Compare
pa-lem
force-pushed
the
ifc-2737-preferences-docs
branch
from
July 21, 2026 09:43
89cdbbc to
1ae4ee0
Compare
Add the user-facing "Managing preferences" page under Deployment & Management > User Management & Security (single page, Web + GraphQL tabs): precedence (user > organisation default > browser), the date-format presets, setting personal preferences and organisation defaults, and the manage_global_preferences gate. Register it in the sidebar after "Managing API tokens". Add the missing changelog fragment for preference-driven date/time rendering (IFC-2721); the existing fragments only covered setting preferences. Add Python e2e coverage: personal round-trip + clear-override, global-default inheritance, and the permission gate. Introduce a shared select_combobox_option helper for the preference forms. Facts grounded in the code on this branch (literal UI labels, the "re-select to clear" reset, the InfrahubSetPreferences/InfrahubEffectivePreferences surface). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
pa-lem
force-pushed
the
ifc-2737-preferences-docs
branch
from
July 21, 2026 09:49
1ae4ee0 to
bf4d0e3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Documentation, changelog, and e2e coverage for user preferences (IFC-2737, sub-task 6 of INFP-512).
docs/docs/deploy-manage/user-management/managing-preferences.mdx— single page (Web + GraphQL tabs, mirroringmanaging-api-tokens.mdx) covering precedence (user → organisation default → browser), the date-format presets, setting personal preferences and organisation defaults, and themanage_global_preferencesgate. Registered in the sidebar after "Managing API tokens".+ifc-2721-date-rendering.added.md— fills the gap: the four existing fragments cover setting preferences, but none covered the date/time rendering that this stack delivers.tests/e2e/preferences/— three flows: personal round-trip + clear-override, global-default inheritance, and the permission gate. Adds a sharedselect_combobox_optionhelper.Authored via the
writing-infrahub-docsskill; placement, pattern, and voice follow its rules. All facts grounded in the code on this branch (verified live against the running UI).Stack
Stacked on #9930 (
ple-prefs-date-display, IFC-2721) so preference-driven date rendering is real and the docs are truthful. Merge after #9930.Reviewer attention
/profile/global-preferences(the spec/PR feat(preferences): organisation defaults + global-permission gating #9871 said "Organisation defaults" //organisation-defaults); the global row's owner key is the"__global__"sentinel (the spec said the Root node id).data_rbac); they run undershard_foundationin CI.dev/specs/2026-04-user-preferences.mdstill lives only onple-user-preferences, not on this stack — port separately if desired.🖥️ Try it in the app (UI)
A. Set your personal preferences
/profile.yyyy-MM-dd HH:mm— default (ISO_DATETIME)yyyy-MM-dd'T'HH:mm:ssXXX(ISO_8601)yyyy-MM-dd HH:mm:ss(ISO_DATETIME_SECONDS)dd/MM/yyyy HH:mm(EU_DATETIME)MM/dd/yyyy hh:mm a(US_12H)America/New_York). Empty = "Automatic (inherited)".B. See where it takes effect
The chosen format + timezone apply everywhere dates are rendered. Quick places to confirm:
Change the format in step A, then reload one of these — the timestamps pick up the new format/timezone immediately.
C. Global defaults (admins only)
manage_global_preferencespermission — the default admin account has it./profile/global-preferences).source: GLOBALin the GraphQL below.🧪 Try it via GraphQL (GraphiQL sandbox)
Log in, then open the GraphiQL sandbox (Menu → GraphQL Sandbox). Paste the whole block below into the editor — because each operation is named, GraphiQL lets you pick which one to run.
Suggested order
EffectivePreferences— baseline,sourceshould beDEFAULT.SetMyPreferences, then re-runEffectivePreferences→sourceflips toUSER.MyRawPreferencesto see exactly what's stored (null= unset).ResetMyDateFormat, then re-runEffectivePreferences→date_format.sourceback toDEFAULT/GLOBAL,timezonestaysUSER.GlobalPreferences/SetGlobalPreferences— any user without a personal override then seessource: GLOBAL.Reference — accepted values
date_format— enumDateFormat:ISO_86012026-07-01T14:30:00+02:00ISO_DATETIME2026-07-01 14:30(default)ISO_DATETIME_SECONDS2026-07-01 14:30:00EU_DATETIME01/07/2026 14:30US_12H07/01/2026 02:30 PMtimezone— plain string, any IANA name, e.g."Europe/Paris","UTC","Asia/Tokyo".Scopes:
USER(self only, auth required) ·GLOBAL(needsmanage_global_preferences).🤖 Generated with Claude Code
Summary by cubic
Adds user-facing docs for date/time preferences, a changelog for preference-driven rendering, and e2e tests for personal settings, global defaults, and the permission gate. Addresses IFC-2737.
docs/docs/deploy-manage/user-management/managing-preferences.mdxcovering resolution (user → global → browser), presets, Web/GraphQL flows, and themanage_global_preferencesgate. Added to the sidebar after “Managing API tokens”.changelog/+ifc-2721-date-rendering.added.md: the web UI now renders dates/times using effective preferences; stored values are unchanged.tests/e2e/preferences/*: personal round-trip + clear-override, global-default inheritance, and permission gate. Adds helperselect_combobox_option.Written for commit bf4d0e3. Summary will update on new commits.