Skip to content

feat(admin): add settings editor tab to admin dashboard#706

Open
Ferryx349 wants to merge 8 commits into
cameri:mainfrom
Ferryx349:settings-UI
Open

feat(admin): add settings editor tab to admin dashboard#706
Ferryx349 wants to merge 8 commits into
cameri:mainfrom
Ferryx349:settings-UI

Conversation

@Ferryx349

Copy link
Copy Markdown
Collaborator

Description

This PR adds a Settings tab to the admin dashboard so relay operators can review and edit configuration from the browser instead of only via CLI.

  • Category-based guided editor driven by the settings schema
  • Stage edits locally, preview a diff before saving, then apply or discard
  • Validate all settings before apply
  • Restore from backup and reload current config
  • Sensitive values are redacted in API responses and diff preview

Test plan

  • Log into the admin dashboard and open the Settings tab
  • Edit a setting in a category and confirm the diff preview updates
  • Run Validate all on valid and invalid values
  • Apply staged changes and confirm settings.yaml updates
  • Discard changes and confirm staged edits are cleared
  • Restore backup from a previous save
  • Confirm secrets are not shown in the UI diff preview

Related Issue

Fixes- #665

Screenshots (if appropriate):

Settings-ui.mov

This is how final UI looks.

IMAGE 2026-07-22 12:01:03

Types of changes

  • Non-functional change (docs, style, minor refactor)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my code changes.
  • I added a changeset, or this is docs-only and I added an empty changeset.
  • All new and existing tests passed.

Ferryx349 added 8 commits July 8, 2026 11:57
Signed-off-by: ABHAY PANDEY <pandeyabhay967@gmail.com>
Signed-off-by: ABHAY PANDEY <pandeyabhay967@gmail.com>
Signed-off-by: ABHAY PANDEY <pandeyabhay967@gmail.com>
… backups

Signed-off-by: ABHAY PANDEY <pandeyabhay967@gmail.com>
Reconcile merged UI-DASH and Settings PRs with the settings editor branch:
keep settings editor/backup APIs, adopt upstream Grafana port 7777, fail-closed
rate limiting, admin-health warnings, and Settings review refactors.
@changeset-bot

changeset-bot Bot commented Jul 22, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 1e37e30

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
nostream Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Comment thread src/routes/admin/index.ts
adminRateLimitMiddleware,
adminAuthMiddleware,
withAdminController(createGetAdminSettingsSchemaController),
)
Comment thread src/routes/admin/index.ts
// codeql[js/missing-rate-limiting] - adminRateLimitMiddleware applies Redis-backed admin rate limits
router.post(
'/settings/validate',
adminRateLimitMiddleware,
Comment thread src/routes/admin/index.ts
adminRateLimitMiddleware,
adminAuthMiddleware,
json(),
withAdminController(createPostAdminSettingsRestoreController),
Comment thread src/routes/admin/index.ts Outdated
@Ferryx349

Copy link
Copy Markdown
Collaborator Author

This PR is on the top of #690

@coveralls

Copy link
Copy Markdown
Collaborator

Coverage Status

coverage: 69.694% (+1.0%) from 68.708% — Ferryx349:settings-UI into cameri:main

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants