Studio: settings forms, with Fabric-managed settings marked read-only
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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,storageandreplicationexceptreplication.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.stdStreamsandanalytics.replicate.- Also
modelson Harper below 5.3. - Also
agent.enabled: falseon a host set to force the built-in agent off.
- Also
- 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.hostnameandauthentication.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
modelsblock 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
- studio#1341 settings history and undo, which waits on harper#665.
- studio#1331 editing settings while stopped, which waits on CM#1041.
- studio#1267 stock plugins.
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.
- 主要言語
- TypeScript
- スター
- 5
- フォーク
- 4
- 平均マージ
- 1日 20時間
- マージ済み PR(30日)
- 140
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
HarperFast/studio のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
HarperFast/studio#2070 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
HarperFast/studio#2067 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
HarperFast/studio#2053 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
HarperFast/studio#2026 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
HarperFast/studio#2021 ·
メンテナーはふだん 2 日以内に返信
HarperFast/studio の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
WalletConnect/walletconnect-monorepo#7392 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
fehler
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Azure/azure-functions-nodejs-extensions#180 ·
メンテナーはふだん 1 日以内に返信
-
bug good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
laaielichter/Threesmith#28 ·
メンテナーはふだん 1 日以内に返信