Studio: settings forms, with Fabric-managed settings marked read-only

Đang mở
#2,016 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
45/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
typescript
Lĩnh vực
devtools, frontend

Hướng nghiên cứu

Start with configRootSchema.json to see how Harper’s settings fields, types, and descriptions are represented; then read configRestrictions.ts and useRollingConfigUpdate.tsx for current edit restrictions and save behavior. Compare the Fabric managed settings listed in the issue with compose.yaml in host-manager, including version-specific cases. Done means customers can edit supported settings in forms or the raw editor, see defaults and restart changes, and cannot save Fabric-managed settings.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Problem

Studio's instance settings page is a raw JSON editor with Save & Restart. There are no forms, so a customer has to know Harper's setting names and value formats. The editor also accepts changes to settings that Fabric sets on every start, and those changes are quietly undone at the next restart.

What Studio does today
  • Shows Harper's settings (get_configuration) as JSON, checks them against Harper's settings schema (configRootSchema.json), and saves with the rolling settings save and restart (useRollingConfigUpdate.tsx).
  • Hides some settings and refuses changes to them, for example ports, threads, tls, storage and replication except replication.databases (configRestrictions.ts).
What Fabric sets on every start

Host-manager sets these settings each time an instance starts, so a customer's change to them doesn't last (compose.yaml):

  • Through HARPER_SET_CONFIG, which Harper applies over the settings file at every start: threads.count, tls, operationsApi.sysInfo.disk, operationsApi.network.http2, logging.stdStreams, logging.file, logging.path, logging.colors, logging.external.path, logging.external.stdStreams and analytics.replicate.
    • Also models on Harper below 5.3.
    • Also agent.enabled: false on a host set to force the built-in agent off.
  • Through environment variables, which Harper writes into the settings file at every start: threads.maxHeapMemory, threads.debug.startingPort, operationsApi.network.timeout, http.keepAliveTimeout, replication.hostname, replication.securePort, replication.enableRootCAs, node.hostname and authentication.cookie.domains.
  • As defaults the customer can change (HARPER_DEFAULT_CONFIG): logging.external.level, logging.external.console, http.corsAccessList, operationsApi.network.corsAccessList, and the built-in agent's settings on Harper 5.2+.
  • On Harper 5.3+, host-manager also rewrites the models block in the settings file (see HM#279).

Studio's block list misses several of the first two groups, for example the logging settings, analytics.replicate and http.keepAliveTimeout.

What to build
  • Settings forms: a form for each section of Harper's settings that Studio lets customers change, built from the settings schema's field names, types and descriptions. Keep the raw editor as an advanced option.
  • Fabric-managed settings: show the settings Fabric sets on every start as read-only, marked as managed by Fabric, in both the forms and the raw editor. Refuse to save a change to them.
  • Defaults: mark the settings that start from a Fabric default, and show the default.
  • Before saving, list what changed, and say that the instances restart.
  • Show Harper's own error when it refuses a setting.
Acceptance criteria
  • A customer can change a common setting, such as a log level or a CORS list, from a form without editing JSON.
  • A customer can't save a change to a setting that Fabric sets on every start, and Studio says why.
  • The raw editor still works for anything the forms don't cover.
Related
Dependencies

No central-manager or host-manager work is needed for the forms. The list of Fabric-managed settings must stay in step with host-manager's compose.yaml.

Ngôn ngữ chính
TypeScript
Star
5
Fork
4
Merge trung bình
1 ngày 19 giờ
Pull request đã merge (30 ngày)
144

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của HarperFast/studio

Tất cả issue của HarperFast/studio

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.