--- title: Final Configuration Document tags: v2 --- # 設定檔文件 [ToC] ## Configuration settings module 這個設置 ( Configuration settings ) 是系統或開發用的內部設定, 而非開放給使用者可以自由設定與更新的偏好設置 (User Preferences) => 未來可能會有 客戶跟我們要求時,由我方『管理人員』去更動,更動方式如下 1. 可以直接調整資料庫 2. 使用 API 3. FiO Admin 管理後台 ## 流程圖  ## 範例 1.  ## 分類 1. system_config 2. project_config 3. account_config ## 規則 ### 設定不能重複 - 關於 project 的設定就必須放在 project_config 裡面 - 關於 account 的設定就必須放在 account_config 裡面 - 關於 system 的設定就必須放在 system_config 裡面 ### 每一個設定都有一個 unique 的 "key" ### "Category key" and "key" 命名 - 全大寫, 單字間會用下劃線( _ )區隔連接 - key 以 Category key 當開頭, 加上名稱 - 必須讓人一眼可以看出這是要設定什麼, 它的值型態會是什麼 - Example - category_key: NFT_CREATOR_V2 - key: NFT_CREATOR_V2_MINT_WHITELIST ### 存放規則 - 每個類型的設定檔都會有預設值, 預計會存放在 JSON 檔裡, 如果設定有做 "更改" 才會存到 DB 裡 ## JSON 檔格式 - value 是一個 string 的 array, ``` { title: string description: string category_key: NFT_CREATOR_V2 key: NFT_CREATOR_V2_CONTRACT display: false // 前端是否顯示此設定 value: [] } ``` ## Database - 只用一個 table 記錄所有設定 - value 是一個 string 組成的 array - 如果是 boolean 就存成 string 的 0 or 1 e.g. ['0'] ### DB Schema ``` { category_key: NFT_CREATOR_V2 // required key: NFT_CREATOR_V2_CONTRACT // required value: [] project_id: ObjejctId, // optional account_id: ObjectId, // optional enable: true // default true } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up