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
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
530
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
140
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
0
450
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
290
認証認可だけじゃない! ID管理の構成要素と ライフサイクルを意識しよう
ritou
1
470
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
0
640
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
1.2k
美しいコードを書くためにF#を学んでみた話
yud0uhu
1
170
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
2
1.1k
知見・人・API・DB・予算 ─ ナイナイ尽くしだった人事データ整備 with dbt、5年間の学び
ken6377
1
150
cccccc
moznion
0
1.7k
AIに障害切り分けを全部やってもらった。 。 。 。
estie
0
360
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
180
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
240
sira's awesome portfolio website redesign presentation
elsirapls
0
290
Prompt Engineering for Job Search
mfonobong
0
360
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
490
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
The Language of Interfaces
destraynor
162
27k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
210
Building Applications with DynamoDB
mza
96
7.1k
Google's AI Overviews - The New Search
badams
0
1.1k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
290
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