Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第22回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schemaを使...
Search
tohosaku
May 28, 2022
Technology
1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第22回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schemaを使ってみよう」
tohosaku
May 28, 2022
Other Decks in Technology
See All in Technology
QA・ソフトウェアテスト研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
3
1.8k
reFACToring
moznion
1
980
ウォーターフォール開発案件のPMとしてAI活用を模索している話
hatahata021
2
220
データ組織の転換期 一足飛びしない段階的戦略
leveragestech
PRO
0
120
AIがAPIを書く時代に、私たちは何を設計すべきか
nagix
0
170
カメラ×AIで挑む「ホワイト物流」― 車両管理、自動化の壁と突破口【SORACOM Discovery 2026】
soracom
PRO
0
180
脱Jenkins、インターン生が挑んだCIツールGitHubActions移行
mixi_engineers
PRO
1
270
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
220
Escolhendo LLMs na Prática: Lições Reais em Busca Agêntica no Mercado Livre —TDC 2026 Floripa
jpbonson
0
110
現場で使える AWS DevOps Agent 活用ノウハウ - Release Management 機能の検証結果を添えて / AWS DevOps Agent Release Management and Know-How
kinunori
5
790
コンポーネント名には何を含めるべきなのか? / what-should-be-included-in-component-names
airrnot1106
0
190
GMOフィナンシャルゲートが挑む、「止まらない」決済インフラ構築の裏側【SORACOM Discovery 2026】
soracom
PRO
0
110
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
How to Ace a Technical Interview
jacobian
281
24k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
Embracing the Ebb and Flow
colly
88
5.1k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
200
Documentation Writing (for coders)
carmenintech
77
5.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
340
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
190
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
620
Transcript
カスタムフィールドでJSON Schema を使ってみよう 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」
2022/5/28 tohosaku
自己紹介 tohosaku (github, twitter) 非IT 企業勤務。普段は Excel, Access, Powershell 社内にRedmine
を導入したい 宣伝 REDMINE JAPAN のスタッフをやってます。 vol-3 開催にむけて月一でZoom 会議をやってます。 見学だけという方も歓迎しています。 次回は 6/1( 水) 20:00 開催予定。 https://connpass.com/dashboard/ で参加者を募集し ています。 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku
最初にまとめから カスタムフィールドに JSON 形式でデータを保存する仕組みを作ってみました。 データ定義を与えれば自動的にフォームを生成し入力を検証してくれます。 データ定義には、"JSON Schema" を使います。 第22 回
redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku
例えばこんな依頼があったとします。 今使ってる申請システム( 実はRedmine) に、入力できる項目を増やしてほしい。 申請者の家族を入力できるようにしてほしいです。 年齢、同居、職業もそれぞれ入力できるようにしてほしいです。 …… 現状、Redmine のカスタムフィールドには、複数項目を持ったデータを任意の件 数だけ記録することができません。さあどうする
第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku
案1 カスタムフィールドをたくさん作ってがんばる。 cf_1 => 家族1_ 名 cf_2 => 家族1_ 年齢
cf_3 => 家族1_ 同居 cf_4 => 家族1_ 職業 cf_5 => 家族2_ 名 cf_6 => 家族2_ 年齢 cf_7 => 家族2_ 同居 cf_8 => 家族2_ 職業 cf_9 => 家族3_ 名 cf_10 => 家族3_ 年齢 cf_11 => 家族3_ 同居 cf_12 => 家族3_ 職業 cf_13 => 家族4_ 名 cf_14 => 家族4_ 年齢 cf_15 => 家族4_ 同居 cf_16 => 家族4_ 職業 cf_17 => 家族5_ 名 cf_18 => 家族5_ 年齢 cf_19 => 家族5_ 同居 cf_20 => 家族5_ 職業 とても辛い…… というか、行をもっと増やしてほしいとかに機動的に対処できない。 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku
案2 Excel を添付 これで凌いでいるケースもあるのでは? 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema
を使ってみよう」 2022/5/28 tohosaku
案3 view customize プラグイン と json-editor を使う json-editor とは? https://github.com/json-editor/json-editor
データ構造の定義を "JSON Schema" で指定すると、自動的に入力フォーム を作成してくれる 入力検証もやってくれる 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku
実際の画面1 チケット作成/ 編集画面にフォームが表示されているところ。 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」
2022/5/28 tohosaku
実際の画面2 入力結果が反映しているところ( 本番ではJSON は隠します) 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema
を使ってみよう」 2022/5/28 tohosaku
実際の画面3 プロジェクトカスタムフィールドに設定されている JSON Schema 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema
を使ってみよう」 2022/5/28 tohosaku
JSON Schema とは? https://json-schema.org/ JSON のデータ構造を定義するための規格。 JSON Schema そのものも JSON
で記述します。 必須項目は? 項目は文字列か、数値か? 最大値、最小値はあるか etc. 何度かの改訂があって今は "Draft 2020-12" が最新 json-editor は、古い JSON schema (draft 4 。2013 年のもの) のみに対応。 古いけど、実用上必要なものはそろっています。 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku
Redmine で使うためには json-editor の表示やデータの保存は、view customize plugin で行います。 プロジェクトのカスタムフィールドとチケットのカスタムフィールドを一つずつ 用意します。 プロジェクトのカスタムフィールドを用意し
JSON Schema を保存 編集権限があれば、プロジェクトごとに別々のスキーマを定義できる。 チケットのカスタムフィールドに結果をJSON として保存 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku
やってみた感想1 Excel 添付とちがってチケットを開くだけで明細が見られる。 カスタムフィールドの中身をプロジェクトごとに変えられる。 データ定義は決まっているので添付ファイル地獄よりはカオスにならない( 多 分) プロジェクト管理者にスキーマの管理方法を理解してもらえれば、システム 管理者がいちいちカスタムフィールドを増やしたりせずにすむ。 定義した
Schema も次第に変遷していくことが想定されるので、最初からバ ージョン情報を追加しておくといった工夫が必要かもしれない。 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku
やってみた感想2 一つのアプリケーションで入力検証の仕組みが2 通りできることになる。あまり複 雑なことを json-editor にやらせようとしない方が無難。 Schema が JSON のままだとコメントが書けないので、フィールドは
yaml にし ておいて読みこむときに、JSON にした方が良いかもしれない。 乱用を防ぐような仕組みは存在しないので、放っておくと凄いカオスになってし まうかも。 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku
Q&A 集計どうするの? 案1 データ保存時に集計対象となる金額合計や件数だけを別のカスタムフィールドに転記 する。 案2 Redmine 上での集計はあきらめて、SQL からjson の抽出、それを
ruby や powershell な どで加工する。 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku
Q&A 入力結果を API から取り出したりできますか? JSON そのものをエスケープしてカスタムフィールドに保存しているだけなので、 API のJSON の一部になっているわけではありません。 API
の該当部分のテキストをあらためて JSON としてパースする必要があります。 API のフォーマットがxml の場合であっても当然、この部分のデータは JSON とし て保存されています。 第22 回 redmine.tokyo 勉強会 「カスタムフィールドでJSON Schema を使ってみよう」 2022/5/28 tohosaku