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
IoTハンズオンの舞台裏
shirouz
2
150
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
270
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
160
JAWS-UG初心者支部#88わいわい初心塾(夏休みの宿題やったかGit編)
otsuki
0
150
データエンジニアの困りごとをDevinと一緒に解消する
10xinc
2
840
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
180
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
210
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
260
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
150
Webとヘルスデータ
yukukotani
0
190
いま、生成AIにKaggleをどこまで 任せられるか — ROGIIコンペでの進め方とTips
k951286
3
1.4k
ブラウザアプリの継続的パフォーマンスモニタリング (序) / Continuous Browser Application Performance Monitoring; Act 1
moznion
0
110
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
470
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
Utilizing Notion as your number one productivity tool
mfonobong
4
570
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
260
The Language of Interfaces
destraynor
162
27k
Making the Leap to Tech Lead
cromwellryan
135
10k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
570
Discover your Explorer Soul
emna__ayadi
2
1.3k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
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