Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
第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
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
490
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
320
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
320
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
200
20260912_スクフェス三河
kgnkhkr
0
300
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
160
安心して変更できるWebフロントエンドの作り方
pirosikick
4
1.1k
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
1
500
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
170
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
160
Code4Lib JAPANカンファレンス2026 開会挨拶 / Code4Lib JAPAN Conference 2026: Opening Remarks
ykiyota
0
340
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
850
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Utilizing Notion as your number one productivity tool
mfonobong
4
580
New Earth Scene 8
popppiees
3
2.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Balancing Empowerment & Direction
lara
6
1.3k
Unsuck your backbone
ammeep
672
58k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Building AI with AI
inesmontani
PRO
1
1.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
First, design no harm
axbom
PRO
2
1.3k
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